我有一些类似的代码:
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()]
来获取主矢量中的最后一个元素,以便在其中插入一个整数。我不明白为什么会这样,但是我从这段代码中得到了各种各样的错误。我做错了什么?
答案 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;解决方案更好。