矢量中的方形括号

时间:2014-09-27 10:33:42

标签: c++ vector

我对矢量有一个愚蠢的怀疑。在下面的代码中

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

我可以写

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

但我不能写

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

我也做不到

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

显示错误。

4 个答案:

答案 0 :(得分:8)

std::vector<char>vechar[2]声明一个由两个char向量组成的数组(它的语法与例如int arr[2]中使用的语法相同)。

因此,vechar[0]char的一个向量,vechar[1]char的另一个向量。

两个矢量都是空的,但可以调整大小。

答案 1 :(得分:1)

在NPE的答案中添加更多内容。要添加字符&#39; a&#39;对于vechar [0]或vechar [1]我们必须做以下事情

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

答案 2 :(得分:0)

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

上述声明创建了一个包含10个空向量的数组,与int v [10];

相同

答案 3 :(得分:0)

NPE 的精彩解释,,,,, 添加到他身上,以及我如何将 'a' 分配给 vechar[0] 并将 'b' 分配给 vechar[1],根据我的说法如下...... ....

#include <iostream>
#include <vector>

using namespace std;

int main(){
   vector<char>vechar[2]; 

   vector<char> v1{'a'};
   vector<char> v2{'b'};

   vechar[0] = v1;
   vechar[1] = v2;

   //display the 'a' and 'b'

   cout << vechar[0][0] << endl;       //also may use vechar[0].at(0)
   cout << vechar[1][0] << endl;       //also may use vechar[1].at(0)

    
   return 0;
   }

输出: 一种