无法将整数插入多维向量

时间:2016-05-14 05:32:58

标签: c++ vector

我有一些类似的代码:

vector< vector<int> > vec; // multidimensional vector
while (condition)
{
    vec.push_back(vector<int>()); // add subvectors to vec
    for (int i = 0; i < number; i++)
    {
        vec[vec.size()].push_back(i); // add integers to those subvectors (the problem)
    }
}

我使用vec[vec.size()]来获取主矢量中的最后一个元素,以便在其中插入一个整数。我不明白为什么会这样,但是我从这段代码中得到了各种各样的错误。我做错了什么?

3 个答案:

答案 0 :(得分:1)

更常见的方法是按如下方式进行:

vector< vector<int> > vec; // multidimensional vector
vector<int> a;
// push back elements to a
vec.push_back(a);

答案 1 :(得分:0)

如您所知,C / C ++中的索引来自[0,size-1],因此要将整数插入向量向量中的最后一个向量,请使用以下代码

vec[vec.size()-1].push_back(i);

答案 2 :(得分:0)

由于没人提及,你可以这样做:

vec[x][y] = 5;

它会像我期望的那样工作。

但我亲自找到了#E; Nissa。&#34;解决方案更好。