Struktura w wektorze – wyświetlanie

0

Witam,

Potrzebuje pomocy z wyświetleniem vectora który jako dane przyjmuje strukture DataPoint.


struct DataPoint
{
unsigned int day;
int temp_min;
int temp_max;
}


class DataSet
{
private:
vector<DataPoint>vec;
    
    
    
    
public:
    
    void add(struct DataPoint s1)
    {
         vec.push_back(s1);
    }
    
    friend void remove(DataSet &vec1,unsigned int a)
    {
             for(vector<DataPoint>::iterator it = vec1.vec.begin(); it!=vec1.vec.end();++it)
             {
                
             }
    }
    
   
    
    friend  ostream & operator<<(ostream &ekran, DataSet &vec1)
    {
       // vector<DataSet>::iterator it;
        for(vector<DataPoint>::iterator it = vec1.vec.begin(); it!=vec1.vec.end();++it)
        {
           // CO TUTAJ ???
        }
    
        return ekran;
    }
};




1

Przeładuj operator<< dla DataPoint

0

w sumie to mi wyskakuje ten sam błąd jak przy próbie skończenia poprzedniego operatora<<.
Co robię źle?

błąd - "Invalid operands to binary expression"

     friend  ostream & operator<<(ostream &ekran, DataPoint &s1)
    {
        ekran<<"day = "<<s1.day;
        return ekran;
    }

0

Przesuń definicję operatora<< poza klasę DataSet, i potem:

    ostream& operator<<(ostream &ekran, DataSet &data)
    {       
        //for(vector<DataPoint>::iterator it = vec1.vec.begin(); it!=vec1.vec.end();++it)
        for (const DataPoint &dp : data.vec)
        {
           // CO TUTAJ ???
           //a takie coś
           ekran << "day:" << dp.day << ", temp_min:" << dp.temp_min << ", temp_max:" << dp.temp_max << "\n";
        }
 
        return ekran;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1