First of all I'm pretty new to vectors themself, so bear with me please.
I'm trying to make a vector that contains 2strings, int and a float.
This is my struct:
struct OpiskelijanTiedot {
string etunimi;
string sukunimi;
int HarjMaara;
float Arvosana;
OpiskelijanTiedot() : etunimi(), sukunimi(), HarjMaara(), Arvosana() {}
OpiskelijanTiedot(string const& e, string const& s, int const& h, float const& a) :
etunimi(e), sukunimi(s), HarjMaara(h), Arvosana(a) {}
bool operator<(OpiskelijanTiedot const& rhs) const
{
return sukunimi < rhs.sukunimi;
}
};
Then in Main.cpp I made a vector like this: vector<OpiskelijanTiedot> Tiedot;
And in my functions.cpp I have this:
void oppilas(vector<OpiskelijanTiedot>Tiedot, int laskuri) {
OpiskelijanTiedot temp;
cout << "Etunimi: ";
cin.ignore();
cin >> temp.etunimi;
Tiedot.push_back(temp.etunimi);
cout << "Sukunimi: ";
cin >> temp.sukunimi;
Tiedot.push_back(temp.sukunimi);
cout << "Tehtyjen harjoitustehtavien maara: ";
cin >> temp.HarjMaara;
Tiedot.push_back(temp.HarjMaara);
cout << "Harjoitustyon arvosana: ";
cin >> temp.Arvosana;
Tiedot.push_back(temp.Arvosana);
}
So I'm getting this error:
Description Project File Line Error C2664
'void std::vector>::push_back(const OpiskelijanTiedot &)': cannot convert argument 1 from 'float' to 'OpiskelijanTiedot &&'
I've been searching about this problem for a long time now and can't get rid of this, so any help or pointing me to right direction is greatly appreciated. I'm guessing it somehow has a problem with me not telling what's string int etc, but I can't figure it out. Thanks!