Share some examples for everyone.
Use multimap associative containers here.
std::multimap<int,std::wstring> List;
List.insert(std::make_pair(1, L"A"));
List.insert(std::make_pair(1, L"B"));
List.insert(std::make_pair(2, L"B"));
List.insert(std::make_pair(3, L"D"));
List.insert(std::make_pair(4, L"E"));
for (std::multimap<int,std::wstring>::reverse_iterator it = List.rbegin(); it != List.rend(); ++it)
{
if (it->second.find(L"B") != std::wstring::npos)
{
List.erase(std::next(it).base());
it = List.rbegin();
if (OuthMonitor.empty())
{
break;
}
}
}
The relationship between it.base() and List is: List.erase(std::next(it).base());Then because the iterator has removed one, so specify the original begin.
it = List.rbegin();
Output:
List { size=0x00000003 }
[0x00000001] L"A"
[0x00000003] L"D"
[0x00000004] L"E"
沒有留言:
張貼留言