C++中Vector的删除操作
来源:互联网 发布:iptv网络高清机顶盒 编辑:程序博客网 时间:2024/06/06 14:03
v.pushback(0);
v.pushback(1);
v.pushback(1);
v.pushback(0);
想要删除值为1的元素
错误代码
正确代码
else
关于迭代器机制,好好研究。参见 http://blog.csdn.net/bruce_wang_janet/article/details/6879289
每一次删除之后,后边的元素都会向前移动。
所以当前迭代器实际已经指向下一个元素,若再+1,实际上是指向了下一个元素的下一个元素。
以下为上述程序的详细执行过程
int main(int argc, char* argv[])
{
}
数据
1
2
3
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
End
Last
执行第一个循环
tem=itr;
数据
1
2
3
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
End
Temitr
Last
itr++;
数据
1
2
3
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
End
Tem
itr
Last
v.erase(tem);
数据
2
3
4
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
Last
End
Tem
itr
tem=itr;
数据
2
3
4
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
Tem
Last
End
itr
itr++;
数据
2
3
4
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
Tem
Last
End
itr
v.erase(tem);
数据
2
4
4
4
未赋值
内存地址
B0
B4
B8
BC
C0
指针
begin
Tem
Last
End
itr
可见,erase操作之后,last指针前移,而end指针未变,被删除的元素后边的元素前移,last之后的元素保持不变(并未移除)。完成之后计算size是由last-begin得到的。
- C/C++中vector的操作(排序、删除)
- C++中Vector的删除操作
- C++中Vector的删除操作
- STL中map/vector的删除元素操作
- C++STL中vector容器类的简单操作
- C++/STL_中Vector的基本操作与示例
- 关于vector删除操作的一点提示。
- C++中的Vector 的删除操作
- vector中 迭代器的使用 以及元素的去重、排序、插入、删除操作。 【小笔记】
- STL中vector的删除操作引起迭代器失效和空间重新配置
- vector中特定元素的删除
- vector中特定元素的删除
- STL中Vector元素的删除
- 删除vector中元素高效的方法
- C++vector的使用总结及常用vector操作
- vector中循环删除
- 删除vector中内存
- C++: 避免cout删除小数中0的操作
- 简单的下载文件程序
- 旱冰场造价
- 淘宝联盟:该网站还有非联盟创建的广告位,请先删除广告位
- 关于UIView的autoresizingMask属性的研究
- git branch 常用命令
- C++中Vector的删除操作
- Linux下软件安装方法
- IO流详细
- 日并且会感到很委屈
- 湖南师范大学第五届大学生计算机程序设计竞赛--G--修路
- dicom格式文件讲解(三)
- arm-linux-strip
- redis源码解读----Redis启动都干了啥
- OpenGL实现颜色混合