STL中的eraser的使用

来源:互联网 发布:孕妇照软件下载 编辑:程序博客网 时间:2024/04/30 17:04

本人菜鸟一名,此处为CSDN第一篇原创文章,如有bug请批评指针
开发中查询资料经常在此论坛上得到帮助,所以,鄙人也同样开了博客,记录上开发中遇到的各种问题,希望对需要的人有所帮助
今天在程序中出现Crash 查到竟然是eraser使用出错了,特意写了一段小测试代码来指出错误

include “stdafx.h”

include

include

include

using namespace std;

int main()
{
std::vector testVer;

for (int i = 0; i < 10; ++i)    testVer.push_back(i);//for (auto itVer = testVer.begin(); itVer != testVer.end(); ++itVer)       // 在循环中用到eraser时,基本不会这么写for (auto itVer = testVer.begin(); itVer != testVer.end();){    // erase擦除后进行++ 操作会出现错误    if (5 == *itVer)    {        itVer = testVer.erase(itVer); // 返回指向下一个元素的迭代器        continue;    }    // 其他相关处理代码    cout << *itVer << ' ';    // 最后进行迭代    ++itVer;}cout << endl;getchar();return 0;

}

0 0