C++ 如何设置向量对的向量?

C++ 如何设置向量对的向量?,c++,vector,std-pair,push-back,C++,Vector,Std Pair,Push Back,在这段代码中,我试图生成向量对的向量。代码可以编译,但它有一个分段错误,我无法找出哪里出错了。如果有任何能解决我问题的提示,我将不胜感激 #include <iostream> #include <vector> using namespace std; vector<vector<pair<int,bool> > > pairs; void insert(int x, int y) { pair<

在这段代码中,我试图生成向量对的向量。代码可以编译,但它有一个分段错误,我无法找出哪里出错了。如果有任何能解决我问题的提示,我将不胜感激

#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;   
    }
#包括
#包括
使用名称空间std;
向量对;
无效插入(整数x,整数y)
{
pair tuple=make_pair(y,0);
pairs[x]。push_back(元组);
}
无效配对()
{

for(int i=0;ipairs没有元素,因此无法执行此操作:
pairs[x]

调整成对向量的大小,使其包含N个空白的
向量
,或者首先创建一个
向量
,并将其推回到
成对中
读取运算符[]的std::vector


“与std::map::operator[]不同,此运算符从不将新元素插入容器。”

std::vector对(12,{0,false},{1,false},…,{10,false},{11,false});
(您可能希望创建函数来创建内部向量)。向量
是以零大小创建的,代码中的任何内容都不会改变这一点。因此,计算
对[x]
的任何值都会给出未定义的行为,对其执行任何操作(即
对[x]。向后推(元组)
)。您需要调整
对的大小,以便在尝试对其包含的向量进行组合之前,它有足够的元素。