Heim >Backend-Entwicklung >C++ >Wie kann ich die std::vector-Initialisierung in C vereinfachen?

Wie kann ich die std::vector-Initialisierung in C vereinfachen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 13:01:09439Durchsuche

How Can I Simplify std::vector Initialization in C  ?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn