2014-09-27 35 views
6

Tôi gặp một nghi ngờ ngớ ngẩn trong vector .Tại mã này sauNgoặc vuông trong Vectors

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

trong đã vector tôi có thể viết

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

nhưng tôi không thể viết

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

cũng tôi không thể làm

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

Nó hiển thị lỗi.

Trả lời

7

std::vector<char>vechar[2] khai báo mảng bao gồm hai vectơ char (giống như cú pháp được sử dụng, ví dụ: int arr[2]).

Do đó, vechar[0] là một vector của charvechar[1] là một vectơ khác của char.

Cả hai vectơ bắt đầu trống nhưng có thể thay đổi kích cỡ.

+0

Nhưng sau đó tại sao tôi không thể viết vechar [0] = 'a', chúng ta có thể làm tương tự trong mảng – Freedom911

+4

@ MsFreedom911: Bạn không thể gán 'char' cho toàn bộ vectơ. – NPE

+0

Một nghi ngờ. Chúng ta có vechar [0] là vector của char và tại một điểm nào đó kích thước của nó trở thành 5 sau khi chèn các phần tử thì làm sao chúng ta có thể truy cập phần tử vechar thứ 5 [0] và làm thế nào chúng ta có thể in các phần tử của vechar [ 0]? – Freedom911

1

Thêm nhiều đến câu trả lời của NPE .Để thêm nhân vật 'a' để vechar [0] hoặc vechar [1] chúng ta phải làm những điều sau đây

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];

Việc kê khai trên tạo một mảng gồm 10 vectơ trống, giống như int v [10];

Các vấn đề liên quan