Vereinfachung der std::vector-Initialisierung
Bei der Arbeit mit Arrays in C ist die Initialisierung oft unkompliziert:
int a[] = {10, 20, 30};
Allerdings kann die Initialisierung eines std::vector mit push_back() umständlicher sein. Methode:
std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30);
C 11-Lösung (mit Unterstützung)
Wenn Ihr Compiler C 11 unterstützt, können Sie Initialisierungslisten verwenden:
std::vector<int> v = {1, 2, 3, 4};
Dies ist in den GCC-Versionen 4.4 und höher verfügbar.
Alternative Option (mit Boost.Assign)
Für ältere Compiler bietet die Boost.Assign-Bibliothek eine Nicht-Makro-Lösung:
#include <boost/assign/list_of.hpp> ... std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
Oder mit den Operatoren von Boost.Assign:
#include <boost/assign/std/vector.hpp> using namespace boost::assign; ... std::vector<int> v; v += 1, 2, 3, 4;
Beachten Sie, dass Boost.Assign im Vergleich zur manuellen Initialisierung zu Leistungseinbußen führen kann.
Das obige ist der detaillierte Inhalt vonWie kann ich die std::vector-Initialisierung in C vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!