访问矢量的动态矢量

时间:2015-06-02 22:12:55

标签: c++

这是我的代码:

std::vector< std::vector<int> > v;

v.push_back(std::vector<int>(2));
v[0].push_back(10);

std::cout<<(v[0])[0];

但它打印&#34; 0&#34;而不是10。

我正在尝试制作一个包含固定大小矢量的动态矢量。

有人可以帮我看看发生了什么吗?

2 个答案:

答案 0 :(得分:3)

代码是错误的:

std::vector<int>(2)

使用deault构造的int(为零)初始化大小为2的向量,因此推送10只会在末尾创建一个大小为3 w / 10的向量(索引) 2)。

答案 1 :(得分:0)

在阅读了更多关于push_back的内容后,这是我到目前为止所理解的以及我如何修复它

std::vector< std::vector<int> > vo;    //empty vector of vectors
v.push_back(std::vector<int>(2));      //insert element
v.push_back(std::vector<int>(2));      //insert element

v[0][0] = 1;                           
v[0][1] = 2;                           //allocated so it's alright to add elements
v[1][0] = 3;
v[1][1] = 4;
std::cout<<v[1][1]; //4