如何清除c中的所有偶数整数

前端之家收集整理的这篇文章主要介绍了如何清除c中的所有偶数整数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是C的新手.我想知道经验丰富的编程人员这样做.

我拥有的:

set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
s.insert(5);

for(set<int>::iterator itr = s.begin(); itr != s.end(); ++itr){
if (!(*itr % 2))
    s.erase(itr);
}

当然,它不行.因为它被擦除后递增.
这是否意味着,我从设置中删除元素后每次都会指向集合的开始?

解决方法

for(set<int>::iterator itr = s.begin(); itr != s.end(); ){
  if (!(*itr % 2))
      s.erase(itr++);

  else ++itr;
 }

Scott Myers的有效STL

猜你在找的C&C++相关文章