【问题标题】:Square Brackets in Vectors向量中的方括号
【发布时间】:2014-11-22 07:14:16
【问题描述】:

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

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

ve向量中我可以写

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

但我不会写

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

我也做不到

std::cout &lt;&lt; " vector --&gt;&gt;" &lt;&lt; vechar[0];

显示错误。

【问题讨论】:

    标签: c++ vector


    【解决方案1】:

    std::vector&lt;char&gt;vechar[2] 声明了一个由char 的两个向量组成的数组(与int arr[2] 中使用的语法相同)。

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

    两个向量一开始都是空的,但可以调整大小。

    【讨论】:

    • 但是为什么我不能写 vechar[0]='a',我们可以在数组中做同样的事情
    • @MsFreedom911:您不能将char 分配给整个向量。
    • 一个疑问。我们有 vechar[0] 它是 char 的向量,在插入元素后,它的大小在某个时候变为 5,那么我们如何访问 vechar[0] 的第 5 个元素以及如何访问我们打印 vechar[0] 的元素?
    【解决方案2】:

    为 NPE 的答案添加更多内容。要将字符 'a' 添加到 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];
    

    【讨论】:

      【解决方案3】:

      std::vector&lt;char&gt; v[10];

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

      【讨论】:

        【解决方案4】:

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

        输出: 一种 b

        【讨论】:

          猜你喜欢
          • 2015-05-28
          • 1970-01-01
          • 2011-11-03
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多