2 Stimmen

Konstruktor für wiederholte Sequenzen

Kann ich eine

vector<vector<int> >

mit dem Konstruktor für wiederholte Sequenzen?

Ich weiß, dass ich so etwas bauen kann

vector<int> v(10, 0);

aber ich weiß nicht, wie man einen Vektor des Vektors mit der gleichen Methode erstellen kann. Ich danke Ihnen!

4voto

Xeo Punkte 126280

Übergeben Sie ihm einfach einen Vektor als zweiten Parameter:

// 10 x 10 elements, all initialized to 0
vector<vector<int> > v(10, vector<int>(10, 0));

4voto

Mark B Punkte 93261

vector<vector<int> > v(10, vector<int>(30, 0)); würde zehn Vektoren mit jeweils 30 Nullen erzeugen.

0voto

Alok Save Punkte 196241
explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );

Konstruktor für wiederholte Sequenzen: Initialisiert den Vektor, dessen Inhalt auf eine Wiederholung eingestellt ist, n mal, von Kopien von value .

vector< vector<int> > vI2Matrix(3, vector<int>(2,0));   

Erzeugt 3 Vektoren mit jeweils 2 Nullen.

Im Grunde genommen würde man einen Vektor von Vektoren verwenden, um ein zweidimensionales Feld darzustellen.

Hier ist ein Beispiel für den Quellcode:

#include <iostream>
#include <vector>

using namespace std;

main()
{
   // Declare size of two dimensional array and initialize.
   vector< vector<int> > vI2Matrix(3, vector<int>(2,0));    

   vI2Matrix[0][0] = 0;
   vI2Matrix[0][1] = 1;
   vI2Matrix[1][0] = 10;
   vI2Matrix[1][1] = 11;
   vI2Matrix[2][0] = 20;
   vI2Matrix[2][1] = 21;

   cout << "Loop by index:" << endl;

   int ii, jj;
   for(ii=0; ii < 3; ii++)
   {
      for(jj=0; jj < 2; jj++)
      {
         cout << vI2Matrix[ii][jj] << endl;
      }
   }
   return 0;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X