Как настроить вектор векторных пар? - PullRequest
0 голосов
/ 08 сентября 2018

В этом коде я пытаюсь создать вектор из векторных пар. Код компилируется, но он имеет ошибку сегментации, и я не могу понять, где я иду не так. Буду признателен за любую подсказку, которая может решить мою проблему.

#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;   
    }

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Чтение std :: vector ссылка для оператора [] ...

"В отличие от std :: map :: operator [], этот оператор никогда не вставляет новый элемент в контейнер."

0 голосов
/ 08 сентября 2018

пар не имеет элементов, поэтому вы не можете сделать это: pairs[x].

Либо измените размер вектора пар, чтобы он содержал N пробел vector<pair<int,bool> >, либо сначала создайте vector<pair<int,bool> > и вставьте его обратно в pairs

...