C++ - 增加二维字符串 vector 中外部 vector 的大小

标签 c++ arrays multidimensional-array vector

我正在尝试了解二维字符串 vector (即 vector 内的 vector ),经过几个小时的努力,我似乎​​无法增加外部 vector 的大小。

我首先将以下值添加到第一个内部元素 {"ABC", "Abacus", "Abacus Football Club", "001"}。

然后我想添加另一个外部元素并添加“BCD”作为第一个值。经过多次失败的尝试后,我无法增加外部 vector 的大小。我在下面介绍了我认为是“最接近”的内容。

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{

    vector< vector<string> > vecTeams(1, vector<string>(4)); 

    vecTeams[0][0] = "ABC";
    vecTeams[0][1] = "Abacus";
    vecTeams[0][2] = "Abacus Football Club";
    vecTeams[0][3] = "001";

    cout << vecTeams[0][1] << endl; 

    vecTeams.push_back(1); 
    vecTeams[1][0] = "BCD"; 

    cout << vecTeams[1][0] << endl;

    return 0; 
}

当尝试编译时,它不喜欢:

vecTeams.push_back(1); 

我有什么误解,如何增加 vector 的大小,从而继续添加数据?

非常感谢,

何塞

最佳答案

vecTeams是一个包含 std::vector<std::string> 的容器s,那么,从逻辑上讲,这就是您需要添加的内容:

vecTeams.push_back(std::vector<std::string>()); 

push_back()的参数是要添加到容器末尾的新值,而不是要添加到容器的新值的数量。由于容器包含 std::vector<std::string> s,你必须构建一个新的,然后将其推回。

您还可以使用resize()完成同样的事情:

vecTeams.resize(2);

现在,容器中有两个元素。

关于C++ - 增加二维字符串 vector 中外部 vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877617/

相关文章:

c++ - 在数组中存储结构 (C++)

c++ - 写入数组时,最后一个线程比第一个线程执行得慢

arrays - Scala 的多维数组再一次

让 cin 读取返回字符的 C++

javascript - 如何按业力对 Reddit 用户进行排序?

python - 使用 numpy.append 改变数组

php - 如何将mysql查询数据打印到php多维数组中?

c++ - 在 constexpr 函数中实例化多个模板

c++ - MSVC 2010 : Allow right-click menu in console during input

c++ - 返回临时的 const 引用