如何设置矢量对矢量?

问题描述 投票:0回答:2

在这段代码中,我试图制作一个矢量对矢量。代码编译但它有一个分段错误,我无法弄清楚我哪里出错了。我会很感激任何可以解决我的问题的提示。

#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;   
    }
c++ vector std-pair push-back
2个回答
0
投票

对没有元素所以你不能这样做:pairs[x]

要么调整对矢量的大小,所以它有N个空白的vector<pair<int,bool> >,或者首先创建一个vector<pair<int,bool> >并将其推回到pairs


0
投票

读取运算符[]的std :: vector reference ...

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

© www.soinside.com 2019 - 2024. All rights reserved.