VC2008中Vector的erase使用
来源:互联网 发布:淘宝主图和详情图尺寸 编辑:程序博客网 时间:2024/05/22 10:36
//先看下面代码
#include "stdafx.h"
#include <vector>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> ivec;
for(int i=0; i<10; i++)
{
ivec.push_back(i);
}
vector<int>::iterator iter = ivec.begin(), endIter = ivec.end();
while(iter != endIter) //下一次循环就assert啦
{
if((*iter)%2==0)
iter = ivec.erase(iter);
else
iter++;
}
return 0;
}
改正方法:
vector<int>::iterator iter = ivec.begin();
while(iter != ivec.end()) //Ok Ok
{
if((*iter)%2==0)
iter = ivec.erase(iter);
else
iter++;
}
看来每次删除后,vector的end()就变化了,因为删除一个元素后,后面的所有元素都会向前挪动,end就变啦。
- VC2008中Vector的erase使用
- C++中vector::erase方法的使用
- vector中erase()的使用
- 关于vector的erase使用
- 在VC2008中使用vector时的C2143错误
- 关于 vector 中 erase 函数的使用注意事项
- (转)vector中使用erase删除元素
- vector中使用erase删除元素
- (转)vector中使用erase删除…
- vector中使用erase删除元素
- STL vector中remove()与erase()使用
- MSDN 中 对vector::erase()的解释
- STL 中vector的erase问题
- 在vector的循环中调用erase
- std::vector中erase的用法误区
- std::vector中erase函数的用法
- 在vector的循环中调用erase
- STL Vector remove()和erase()的使用
- 面试题
- static的不同语意
- mysql 表损坏修复
- C#程序如何连接另一台电脑的数据库
- 【转】BusyBox中的FTP和TFTP的使用
- VC2008中Vector的erase使用
- Struts2学习 Result
- 计算机几何的网站让我震撼了?
- Android TextView内容设置超链接、颜色、字体
- Linux编译问题1
- oracle 主键修改和索引之间的关系
- hibernate.cfg.xml配置总结
- 移动 Javaweb 服务器 Tomcat
- AutoMake系列之四,可能遇到的问题总结