Klassen vector och dess metoder
Postat: 11 maj 2014, 22:47
Hej
Jag sitter och donar med vektorer och klasser. Har en skoluppgift där läraren vill att man ska ha en klass med namn och ålder, klassens objekt sparar jag i en vektor.
Läraren vill dessutom att vi ska använda Bubbelsort för att sortera listan efter ålder. Jag har skrivit koden men får fel C2664, cannot convert parameter 2 from 'void' to 'const Person &'
Klassen heter Person, lagringsvektorn heter Familj och jag har typedef vector<Person> Vektor; för att förenkla och korta ner allt skrivande. Klistrar in min redan skrivna kod som generar detta fel. Det är dom 2 raderna Familj.insert som orsakar problem.
Någon som ser något fel eller kan förklara hur jag måste göra om för att det ska fungera...
Jag sitter och donar med vektorer och klasser. Har en skoluppgift där läraren vill att man ska ha en klass med namn och ålder, klassens objekt sparar jag i en vektor.
Läraren vill dessutom att vi ska använda Bubbelsort för att sortera listan efter ålder. Jag har skrivit koden men får fel C2664, cannot convert parameter 2 from 'void' to 'const Person &'
Klassen heter Person, lagringsvektorn heter Familj och jag har typedef vector<Person> Vektor; för att förenkla och korta ner allt skrivande. Klistrar in min redan skrivna kod som generar detta fel. Det är dom 2 raderna Familj.insert som orsakar problem.
Någon som ser något fel eller kan förklara hur jag måste göra om för att det ska fungera...
Kod: Markera allt
void BubbelSort(Vektor &Familj)
{
// Variabler & pekare
string strTemp;
short int fTemp;
// Skapa iteratorer för for looparna
Vektor::iterator i;
Vektor::iterator j;
// Ytter for stegar igenom alla posterna i vektorn, inre for går
//igenom post för post och flyttar dom som behöver flyttas
for(i = Familj.begin(); i != Familj.end(); i++)
{
for(j = Familj.begin(); j != Familj.end(); j++)
{
if(j ->getPersonAlder() > 1 + j ->getPersonAlder())
{
// Kopiera över värdena till en temp variabel, radera sedan posten
strTemp = j ->getPersonNamn();
fTemp = j ->getPersonAlder();
Familj.erase(j);
// Sätt tilbaka posten efter den som var mindre.
Familj.insert(j + 1, j->setPersonNamn(strTemp));
Familj.insert(j + 1, j->setPersonAlder(fTemp));
}
}
}
}