В моем коде у меня есть карта (tBoxes
) с vector<int>
ключом начала и set< pair<int,int> >
значением.
По какой-то причине происходит сбой программы с ошибкой сегментации, когда я пытаюсь получить доступ к определенному элементу карты, который пуст.Если я запускаю программу через valgrind, все в порядке (вот почему я знаю, что элемент пуст).Кроме того, valgrind не сообщает об утечке памяти.Цикл, который я использую, наивный:
map<vector<int>,set<int, int> > tBoxes;
/*populate boxes*/
vector<int> t(3,0);
set<pair<int, int> >::iterator it;
for(int i = mini; i <= maxi; i++){
t[0] = i;
for (int j = minj; j <= maxj; j++){
t[1] = j;
for (int k = mink; k <= maxk; k++){
t[2] = k;
it = tBoxes[t].begin();
while (it != tBoxes[t].end()){
it++;
}
}
}
}
Edit:
Код не является прямым копированием из моего файла, так как я использую странные имена переменных.Я подозреваю, что это проблема с распределением памяти карты, но я не знаю, как это исправить.Кроме того, значение равно set
, а не vector
.