Heim > Backend-Entwicklung > C++ > Wie kann ich Vektoren in C elegant initialisieren?

Wie kann ich Vektoren in C elegant initialisieren?

Barbara Streisand
Freigeben: 2024-12-21 11:33:14
Original
219 Leute haben es durchsucht

How Can I Elegantly Initialize Vectors in C  ?

Vereinfachung der Vektorinitialisierung: Elegante Hardcoding-Optionen

Das Erstellen benutzerdefinierter Initialisierer für Arrays ist eine standardmäßige und unkomplizierte Vorgehensweise. Bei Vektoren kann es jedoch etwas schwieriger sein, einen ähnlichen Mechanismus zu finden. Die inhärente Frage ist, ob es eine Methode gibt, um Vektoren genauso sauber zu initialisieren wie Arrays. Lassen Sie uns die Lösungen erkunden.

Der Standardansatz umfasst, wie Sie erwähnt haben, push_back-Operationen:

std::vector<int> ints;
ints.push_back(10);
ints.push_back(20);
ints.push_back(30);
Nach dem Login kopieren

Obwohl diese Methode ihren Zweck erfüllt, erreicht sie nicht die Eleganz der Array-Initialisierung.

C 11's geschweifte Initialisierung

Mit C 11 und kompatible Compiler wie GCC 4.4 können Sie die in geschweifte Klammern eingeschlossene Initialisierung für Vektoren nutzen:

std::vector<int> v = {1, 2, 3, 4};
Nach dem Login kopieren

Diese Syntax bietet eine prägnante und explizite Möglichkeit, Vektoren zu initialisieren.

Boost. Bibliothek zuweisen

Eine weitere Alternative ist die Verwendung der Boost.Assign-Bibliothek. Es bietet verschiedene Techniken zur Vektorinitialisierung:

Verwendung von list_of:

#include <boost/assign/list_of.hpp>
...
std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
Nach dem Login kopieren

Verwendung der =-Notation:

#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
...
std::vector<int> v;
v += 1, 2, 3, 4;
Nach dem Login kopieren

Beachten Sie jedoch, dass Boost.Assign einen gewissen Leistungsaufwand mit sich bringt aufgrund der zugrunde liegenden Mechanismen. Erwägen Sie für leistungsempfindlichen Code den push_back-Ansatz.

Das obige ist der detaillierte Inhalt vonWie kann ich Vektoren in C elegant initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage