65,210
社区成员
发帖
与我相关
我的任务
分享
it = itor++; // 此处得到下一个元素迭代器
if ((*it).条件满足)
{
v.push_back(*it);
mm.erase(*it);
}
multiset <对象>::iterator it, itor = mm.begin();
while ( itor != mm.end() )
{
// it = itor++;
if ((*it).条件满足)
{
v.push_back(*it);
// mm.erase(*it);
mm.erase(it ++) ;
}
else
++ it ;
}
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
multiset<int> mm;
for(int i=0; i<10; i++)
{
mm.insert(i);
mm.insert(i);
}
multiset<int>::iterator itor = mm.begin();
while ( itor != mm.end() )
{
if (*itor == 0)//如果itor是0,显示并删除
{
//v.push_back(*itor);
cout << *itor << ' ';
itor = mm.erase(itor);//使用这个版本的erase
}
else
++itor;
}
cout << endl;
copy(mm.begin(), mm.end(), ostream_iterator<int>(cout, " ")); //显示set里的数据
return 0;
}