2D-Matrix vs. 2D-Vektor

EINLEITUNG

2D-Matrix, auch als Array von Arrays bekannt, hat ihre Größe am Anfang zugewiesen, daher ist sie ein statischer Modus der Zeilen-Spalten-Darstellung.
2D-Vektoren sind auch als Vektoren von Vektoren bekannt, da es sich um dynamisch wachsende Arrays handelt, bei denen der Benutzer die Anfangsgröße der Anzahl der vorhandenen Zeilen und Spalten nicht definiert. Dies ist ein dynamischer Modus der Zeilen-Spalten-Darstellung.

ERSTELLUNG UND EINFÜGUNG IN 2D MATRIX

int matrix[3][4]; // Größe wurde am Anfang zugewiesen.
Hier ist die Anzahl der Zeilen = 3 und die Anzahl der Spalten = 4.

Um jede Zeile und Spalte zu füllen, schreiben wir Code wie folgt:

for (int i = 0; i < 3; i++) // This loop is run for each row.
{
  for(int j = 0; j < 4; j++) // This loop is run for each column
    {
    	matrix[i][j] = i+j; // We are inserting (value = i+j) into i-th row & j-th column.
    }
}

Wir werden die 0. Zeile, 1. Zeile, 2. Zeile (0-basierte Indizierung) und die 0., 1., 2., 3. Spalte für jede Zeile durchlaufen.
Angenommen, wir sind in der 1. Reihe – 2. Spalte bedeutet Matrix[1][2]sobald der obige Code also ausgeführt wird, hat er den Wert 3 (dh matrix[1][2] = 3).
1.jpg
2.jpg

ERSTELLUNG UND EINFÜGUNG IN 2D-VEKTOREN

vector < vector <int> > vec; // Initialisieren des Vektors der Vektoren
Hier haben wir definiert, dass es einen Vektor von Vektoren geben wird (1 Vektor an sich ist ein dynamisches Array, also bedeutet Vektor von Vektoren eine Liste von dynamisch wachsenden Arrays).

    vector<vector<int> > vec;
    int rows = 3;
    for (int i = 0; i < rows; i++) {
        vector<int> v1;     // Vector to store column elements
        int columns = i+2;  // We are adding i+2 columns in each row, hence dynamic.
        for (int j = 0; j < columns; j++) {
            v1.push_back(20);
        }
        vec.push_back(v1);  // Pushing back above 1D vector to create the 2D vector.
    }

Für den obigen Code läuft die äußere Schleife 3 Mal, dh 3 Zeilen.
Aber die innere Schleife läuft i+2-mal, was für bedeutet
Zeile = 0 , Spalten = 0+2 = 2 (0. Zeile hat 2 Spalten)
Zeile = 1 , Spalten = 1+2 = 3 (1. Zeile hat 3 Spalten)
Reihe = 2 , Spalten = 2+2 = 4 (2. Reihe hat 4 Spalten)
Nur zum Verständnis fügen wir an jeder Position den Wert = 20 ein.
3.jpg

Der Hauptvorteil von 2D-Vektoren liegt in der Tatsache, dass Sie den Speicher nur Ihren Anforderungen entsprechend zuweisen und nicht verpflichtet sind, feste Speicherplätze zuzuweisen, auch wenn diese nicht erforderlich sind, im Gegensatz zu 2D-Arrays, deren Größe am Anfang initialisiert wird.

In den obigen Beispielen haben Sie jetzt die Idee, dass 2d-Arrays nein bedeuten. von Spalten werden für jede Reihe festgelegt, die nicht mit den 2d-Vektoren ist.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *