Mehrdimensionale Vektoren in C++

Naila Saad Siddiqui 15 Februar 2024
Mehrdimensionale Vektoren in C++

In diesem kurzen Programmier-Tutorial geht es um die Einführung in mehrdimensionale Vektoren in C++. Vektoren sind Container, die Daten wie dynamische Arrays in C++ mit automatischer Größenänderung speichern können.

Mehrdimensionale Vektoren in C++

Eine abstrakte Datenstruktur, die als multidimensionaler C++-Vektor bezeichnet wird, kann mit mehreren C++-Baukomponenten erstellt werden, aber dieses Tutorial befasst sich hauptsächlich mit der Containerimplementierung der Standard-Vorlagenbibliothek std::vector. Wir werden einige Methoden der Klasse std::vector verwenden, um Operationen auf mehrdimensionalen Vektoren zu vereinfachen.

Deklarieren und initialisieren Sie 2D-Vektoren in C++

Indem Sie einen Vektorspezifizierer innerhalb des Vorlagenparameters eines anderen Vektors platzieren, können Sie einen zweidimensionalen Vektor angeben.

Denken Sie daran, dass nur der innere Vektor für den Elementdatentyp festgelegt wird. Es ist möglich, Matrizen auszudrücken und zugehörige Operationen unter Verwendung von zweidimensionalen Vektoren auszuführen.

Das folgende Codebeispiel zeigt die Definition und Listeninitialisierung zweidimensionaler Vektoren.

Wir haben uns entschieden, einen 2-dimensionalen Vektor mit zufälligen ganzzahligen Elementen zu definieren. Der folgende Beispielcode hat drei Vektoren mit den Bezeichnungen mat1, mat2 und mat3.

Wie Sie sehen können, hat nicht jeder die gleiche Anzahl von Elementen in jeder Reihe. Schließlich drucken wir die Daten in diesen Vektoren mit einer Hilfsfunktion namens PrintMatrix.

#include <iomanip>
#include <iostream>
#include <vector>
using namespace std;

void PrintMatrix(vector<vector<int>> vec) {
  for (auto &item : vec) {
    for (auto &elem : item) cout << elem << "  ";
    cout << endl;
  }
  cout << endl;
}
int main() {
  vector<vector<int>> mat1 = {{0, 1, 2}, {3, 4, 5}, {6, 7}};
  vector<vector<int>> mat2 = {{10, 9}, {8, 7, 6, 5}, {4, 3, 2}};
  vector<vector<int>> mat3 = {{11, 12}, {13}, {14, 15, 16, 17, 18, 19}};
  PrintMatrix(mat1);
  PrintMatrix(mat2);
  PrintMatrix(mat3);
  return 0;
}

Sie können im obigen Codeausschnitt sehen, dass die drei Vektoren für jede Zeile unterschiedliche Größen haben. Diese Größen werden automatisch gemäß den darin initialisierten Daten angepasst.

Der Code gibt die folgende Ausgabe aus:

C++ 2D-Vektorausgabe

Deklarieren und initialisieren Sie 3D-Vektoren in C++

Wie ein 2D-Vektor ist der 3D-Vektor ein Vektor des Vektors eines Vektors. Es ist wie eine 3-dimensionale Matrix.

Die Syntax folgt dem gleichen Muster wie in einem 2D-Vektor, wie im folgenden Beispiel gezeigt:

vector<vector<vector<int>>> threeDVector = {{{11, 12}, {12, 13}, {13, 14, 15}},
                                            {{11, 12}, {12, 13}, {13, 14}},
                                            {{11, 12}, {12, 13}, {13, 14}}};

for (int a = 0; a < threeDVector.size(); a++) {
  for (int b = 0; b < threeDVector[a].size(); b++) {
    for (int c = 0; c < threeDVector[a][b].size(); c++) {
      cout << threeDVector[a][b][c] << " ";
    }
    cout << endl;
  }
  cout << endl;
}

Dies ergibt die folgende Ausgabe:

C++ 3D-Vektorausgabe

Daher können wir sagen, dass sich Vektoren wie Arrays verhalten, aber in Bezug auf Speicher und Zeit effizienter zu betreiben und zu verwenden sind.

Verwandter Artikel - C++ Vector