要素がベクトルであるマップがあります。これらのベクトルから、特別な数に等しいすべての要素を削除する必要があります。num
std::map<size_t,std::vector<size_t> > myMap;
for (std::map<size_t,std::vector<size_t> >::iterator itMap = myMap.begin();itMap != myMap.end();++itMap )
{
for (std::vector<size_t>::iterator itVec = itMap->second.begin();itVec != itMap->second.end();)
{
auto itNextVec = itVec;
++itNextVec;
if (*itVec == num)
{
itMap->second.erase(itVec );
}
itVec = itNextVec;
}
}
このコードにより、実行時の例外が発生します。VSでは- vector iterators incompatible
。誰かがその原因を指摘できますか?
ありがとう