繁体   English   中英

在另一个地图中存储和重用地图的迭代器值有多安全?

[英]How much it is safe to store and reuse the iterator values of map in another map?

在另一个地图中存储和重用地图的迭代器值有多安全?

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);

}

std::map返回的迭代器会因各种操作而失效,如果您不调用这些操作,那么您可以存储迭代器,如果您这样做,它们将变得无效并且使用它们将是未定义的行为。

阅读文档并在方法描述中查找诸如“迭代器失效”之类的词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM