矢量迭代器的范围?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

有个密码:

int main()
{
    vector<int> res;
    res.push_back(1);
    vector<int>::iterator it = res.begin();
    for( ; it != res.end(); it++)
    {
        it = res.erase(it);
        //if(it == res.end())
        //  return 0;
    }
}

提问于
用户回答回答于

可能想要这样的东西:

 while (it != res.end()) {
        it = res.erase(it);    
 }

删除每个元素

for ( ; it != res.end(); ) {
  if (condition) {
    it = res.erase(it);
  } else {
    ++it;
  }
}
用户回答回答于
for( ; it != res.end();)
{
    it = res.erase(it);
}

或者

for( ; it != res.end();)
{
    if (smth)
        it = res.erase(it);
    else
        ++it;
}

扫码关注云+社区