2014-09-27 20 views
6

ich einen dummen Zweifel in Vektor .In diesem folgenden Code mitEckige Klammern in Vektoren

std::vector<char>ve(2); //creates a vector ve of size 2  
std::vector<char>vechar[2]; //but what does it do ? 

in ve Vektor I

ve[0]='a'; 
ve[1]='b'; 

schreiben kann, aber ich kann

vechar[0]='a'; 
vechar[1]='b'; 
nicht schreiben

auch kann ich nicht tun

std::cout << " vector -->>" << vechar[0];

Es zeigt Fehler.

Antwort

7

Die std::vector<char>vechar[2] deklariert ein Array bestehend aus zwei Vektoren char (es ist die gleiche Syntax wie zum Beispiel in int arr[2] verwendet).

So vechar[0] ist ein Vektor von char und vechar[1] ist ein weiterer Vektor char.

Beide Vektoren beginnen leer, können aber in der Größe geändert werden.

+0

Aber warum kann ich nicht schreiben vechar [0] = 'a', können wir das gleiche in Array – Freedom911

+4

@ MsFreedom911: Sie können ein 'char' nicht zu einem gesamten Vektor zuweisen. – NPE

+0

Ein Zweifel .Wir haben vechar [0], was ein Vektor von char ist und irgendwann wird seine Größe 5 nach dem Einfügen von Elementen, wie können wir dann auf das fünfte Element von vechar [0] zugreifen und wie können wir die Elemente von vechar [ 0]? – Freedom911

1

mehr Zusätzlich zu der Antwort von NPE .Um hinzufügen Zeichen 'a' vechar [0] oder vechar [1] wir folgende Dinge

vechar[0].resize(10); 
vechar[1].resize(10); 
vechar[0][0]='a';   //means vechar 0 0th element 
vechar[0][1] = 'b';  //means vechar 0 1th element 

vechar[1][0]='c'; 
vechar[1][1]='d'; 

std::cout<<vechar[0][0]<<vechar[0][1]; 
std::cout<<vechar[1][0]<<vechar[1][1]; 
0

std::vector<char> v[10];

Die obige Erklärung zu tun haben erstellt ein Array von 10 leeren Vektoren, gleich wie int v [10];

Verwandte Themen