Anhand eines Attribut ein Objekt in einem vektor finden
-
Guten Tag
Ich habe ein vektor
[std::vector <Account> m_Accounts;]der hat Objekte mit attributen drin gespeichert. Eines davon ist
[/int Number]
Nun möchte ich anhand der Nummer (Number) das jeweilige objekt im Vektor mit dieser Nummer finden.
Hab es mit der funktion find versucht aber die funktioniert nicht richtig.
[if(std::find( m_Accounts.begin(), m_Accounts.end(), number) != m_Accounts.end() )
{
//delete account
}]vielend dank
law
-
std::find_if ist schon ganz richtig. Nur darfst du ihm nicht einfach "number" übergeben. Du brauchst dazu eine passende Vergleichsfunktion:
bool AccountHasNumber(const Account& acc, int number) { return acc.GetNumber() == number; }
-
Sehe ich das richtig, dass du ein Objekt suchst und dieses aus dem Vektor löschen willst?
m_Accounts.erase(std::remove_if(m_Accounts.begin(), m_Accounts.end(), [number](const Account& a) { return a.getNumber()==number; }), m_Accounts.end());
-
mit C++11 geht das natürlich auch so, wie Marthog das erklärt hat. Nämlich besser

-
[quote="Marthog"]Sehe ich das richtig, dass du ein Objekt suchst und dieses aus dem Vektor löschen willst?
Ja das ist so. Es hat funktioniert vielen Dank
-
Vielen Dank euch beiden
