Freigeben über


Container modernes (C++)

Standardmäßig verwenden Sie Vektor als sequenzielle Standardcontainer in C++.Dies entspricht der Liste <T> in anderen Sprachen.

vector<widget> v;
v.push_back( “Geddy Lee” );

Verwenden Sie die Karte (nicht Unordered_map) als assoziatives Standardcontainer.Verwenden Sie Set, multimap, Multiset zum Degenerieren & Multi-Fälle.

map<string, string> phone_book;
phone_book[“Alex Lifeson”] = “+1 (416) 555-1212”;

Wenn Performance-Optimierung benötigt wird, in Betracht:

  1. die Array-Typ, wenn einbetten wichtig, e.g., als Klassenmember.

  2. Unordered_map, Et Al.: weniger Aufwand pro Element ist (obere) und Konstante Zeit Lookup (Moll, da ungültige O (Log N) des SYMBOLS O(K)) verwenden.Schwerer zu verwenden, ordnungsgemäß und effizient, wegen der Unannehmlichkeiten + scharfe Kanten.

  3. Sortierte Vektor.(Siehe: Algorithmen.)

Verwenden Sie keine C-Arrays.(Für ältere APIs verwenden Sie f (vec.data(), vec.size()); .)

Siehe auch

Weitere Ressourcen

Willkommen zurück in C++ modernes (C++)

C++-Sprachreferenz

C++-Standardbibliothek-Referenz