Насколько безопасно хранить и повторно использовать значения итератора карты в другой карте? - PullRequest
0 голосов
/ 04 декабря 2018

Насколько безопасно хранить и повторно использовать значения итератора карты в другой карте?

map<BYTE,vector<connections*>*> mconnections1;//sorting connections based on device key.

for (map<Device*,vector<connections*>>::iterator it=m_eip.m_mvpConnections.begin(); it!=m_eip.m_mvpConnections.end(); ++it)
        mConnections1[it->first->DEVICE_KEY]=&it->second;

for (map<BYTE,vector<connections*>*>::iterator it=mConnections1.begin(); it!=mConnections1.end(); ++it)
{

for(unsigned int i=0;i<it->second->size();i++) it->second->at(i)->Write(&fp);

}

1 Ответ

0 голосов
/ 04 декабря 2018

Итераторы, возвращаемые std::map, становятся недействительными различными операциями, если вы не вызываете эти операции, вы можете сохранить итераторы, если вы их сделаете, они станут недействительными, и их использование будет неопределенным поведением.

Прочитайте документацию и найдите слова типа "аннулированные итераторы" в описаниях методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...