在这段代码中,我试图制作一个矢量对矢量。代码编译但它有一个分段错误,我无法弄清楚我哪里出错了。我会很感激任何可以解决我的问题的提示。
#include <iostream>
#include <vector>
using namespace std;
vector<vector<pair<int,bool> > > pairs;
void insert(int x, int y)
{
pair<int,bool> tuple=make_pair(y,0);
pairs[x].push_back(tuple);
}
void pairing()
{
for(int i=0; i<12; i++)
{
for(int j=0; j<12; j++)
{
insert(i,j);
}
}
}
int main()
{
pairing();
return 0;
}
对没有元素所以你不能这样做:pairs[x]
。
要么调整对矢量的大小,所以它有N个空白的vector<pair<int,bool> >
,或者首先创建一个vector<pair<int,bool> >
并将其推回到pairs
读取运算符[]的std :: vector reference ...
“与std :: map :: operator []不同,此运算符永远不会将新元素插入容器中。”