Sida 1 av 1

Klassen vector och dess metoder

Postat: 11 maj 2014, 22:47
av ZerQ
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...

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