stl.vector sortieren lassen.

  • Themenstarter Themenstarter Futzel
  • Beginndatum Beginndatum
F

Futzel

hi,

irgendwie schaffe ich es nicht die Objekte in dem vector zu sortieren.

Hier einmal der betreffende code:

C++:
...
vector<Player> allPlayers;
....

void Manager::player_ausgeben() const
{
	cout <<left << setw(10) << "Name" << right << setw(10) << "C-Gewicht" << right << setw(15) << "Max-Gewicht" << endl;
	
	sort(allPlayers.begin(),allPlayers.end()); //Aufruf sortieren

	for (size_t i=0;i<allPlayers.size();i++)
	{
		cout << left << setw(10) << allPlayers[i].get_name() << right <<
			setw(10) << allPlayers[i].get_currentWeight() << right <<
		 setw(15) << allPlayers[i].get_maximumWeight()<< endl;
		cout <<left << "Inventar:" << endl;
		//allPlayers[i].showInventory();
	}


}
In Klasse Player: Operator < umdefiniert
C++:
bool Player::operator<(const Player &other) const
{
	return name < other.name;
}

Fehlermeldungen:

Code:
 binary '=' : no operator found which takes a left-hand operand of type 'const Player' (or there is no acceptable conversion)

 could be 'Player &Player::operator =(const Player &)'   while trying to match the argument list '(const Player, Player)'
 
Hallo,

auf welche Zeile bezieht sich die Fehlermeldung? Ist allPlayers eine Instanzvariable von Manager? Falls ja, versuchst du einen konstanten Vektor zu verändern (die Methode ist als const deklariert, also werden darin alle Instanzvariablen als const aufgefasst).

Grüße, Matthias
 
Zurück