Несовместимые векторные итераторы C++

Хорошо, искал его по сети и внутри stackru около часа и не нашел ничего подобного, конечно, есть несколько случаев, но ни один из них, кажется, не имеет того же корня.

Хорошо, мне нужно перебрать multimap и они хранятся в vector, Вот код:

DataVector::iterator curr = m_rawBuffer[0]->begin();
DataVector::iterator last = m_rawBuffer[0]->end();
for( ; curr != last; ++curr) {
    delete (*curr);
}
delete m_rawBuffer[0];

DataVector::iterator curr2 = m_rawBuffer[1]->begin();
DataVector::iterator last2 = m_rawBuffer[1]->end();
for( ; curr2 != last2; ++curr2) {
    delete (*curr2);
}
delete m_rawBuffer[1];

DataVector это std::multimap<MyData*>,

m_rawBuffer это std::vector<DataVector*>,

Самое странное, что первый итератор на m_rawBuffer[0] работает нормально, но перебирает m_rawBuffer[1] не работает! И что еще более странно, он ломается только на одной машине, работает на распределенной системе, и все остальные машины в порядке.

operator[] от std::vector возвращает ссылку, верно?

0 ответов

Другие вопросы по тегам