【发布时间】:2017-12-26 23:54:31
【问题描述】:
#include<bits/stdc++.h>
using namespace std;
main()
{
vector<vector<int> > v;
for(int i = 0;i < 3;i++)
{
vector<int> temp;
for(int j = 0;j < 3;j++)
{
temp.push_back(j);
}
//cout<<typeid(temp).name()<<endl;
v[i].push_back(temp);
}
}
我正在尝试分配给二维向量。我收到以下错误
No matching function for call to
std ::vector<int>::push_back(std::vector<int> &)
【问题讨论】:
-
v.push_back(...) -
v[i]访问越界。该向量没有条目 -
v.push_back(vector)和v[i].push_back(int) -
“2D 向量”只是一个向量。所以你需要弄清楚如何将元素添加到向量中。就是这样。
-
提示,如果你使用的是c++11,你可以使用emplace_back