Heim > Backend-Entwicklung > C++ > Wie kann ich einen 2D-std::vector in C effizient initialisieren?

Wie kann ich einen 2D-std::vector in C effizient initialisieren?

Linda Hamilton
Freigeben: 2024-12-02 22:52:14
Original
889 Leute haben es durchsucht

How Can I Efficiently Initialize a 2D std::vector in C  ?

Effizientes Initialisieren eines zweidimensionalen std::vector

Das Initialisieren eines zweidimensionalen std::vector kann eine umständliche Aufgabe sein. Ein gängiger Ansatz besteht darin, Zeilen manuell zu erstellen und an den Vektor anzuhängen, wie im bereitgestellten Code veranschaulicht. Diese Methode kann jedoch ineffizient und fehleranfällig sein.

Eine alternative Lösung besteht darin, den Konstruktor std::vector::vector(count, value) zu nutzen. Dieser Konstruktor akzeptiert zwei Parameter: die gewünschte Anzahl von Zeilen und einen Standardwert für die Elemente jeder Zeile. Durch Angabe der entsprechenden Werte für diese Parameter können wir den Vektor in einer einzigen Anweisung initialisieren:

std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
Nach dem Login kopieren

Wenn ein anderer Standardwert als Null gewünscht wird, kann er als zweites Argument für den Konstruktor angegeben werden:

std::vector<std::vector<int>> fog(ROW_COUNT, std::vector<int>(COLUMN_COUNT, 4));
Nach dem Login kopieren

Einheitliche Initialisierung

C 11 führte eine einheitliche Initialisierung ein und stellte eine weitere prägnante Syntax für bereit Initialisieren eines 2D-Vektors:

std::vector<std::vector<int>> fog { { 1, 1, 1 },
                                    { 2, 2, 2 } };
Nach dem Login kopieren

Dieser Ansatz verwendet geschweifte Klammern, um Zeilen innerhalb des Vektors zu initialisieren. Jede in geschweifte Klammern eingeschlossene Liste stellt eine Zeile dar, wobei jedes Element mit dem angegebenen Wert initialisiert wird.

Durch den Einsatz dieser Techniken können wir einen 2D-std::vector effizient und elegant initialisieren und so die Komplexität einer manuellen Initialisierung vermeiden .

Das obige ist der detaillierte Inhalt vonWie kann ich einen 2D-std::vector in C effizient 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