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));
}
}
}
}