社区
C++ 语言
帖子详情
vector 的erase问题
river4321
2008-04-04 08:59:52
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
...全文
125
13
打赏
收藏
vector 的erase问题
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
资深码农多年
2008-04-05
打赏
举报
回复
for (i=0;i <testvector.size();i++)
{
vector <int>::iterator testit=testvector.begin();
testvector.erase(testit);
cout < <testvector[0] < <endl;
}
大哥,注意到你的for计数i会增长哟,而vector.size却在减少哟,
你再仔细想一想,是不是嘛。
其实这是你的for loop写得不对也。
vector <int> testvector(5);
for (i=0;i <5;i++)
{
testvector[i]=i;
cout < <testvector[i];
}
因为你加入了5个,而删除的时候,i增加,size()
减少,刚刚当等于3的时候,跳出了也。
river4321
2008-04-05
打赏
举报
回复
晕,是啊,汗
资深码农多年
2008-04-05
打赏
举报
回复
楼主认同我的回答,给点分,表示一下嘛。我很穷,多少给点,我还想下点资料也。
qq271991628
2008-04-05
打赏
举报
回复
[Quote=引用 10 楼 yi_jun_jun 的回复:]
for (i=0;i <testvector.size();i++)
{
vector <int>::iterator testit=testvector.begin();
testvector.erase(testit);
cout < <testvector[0] < <endl;
}
大哥,注意到你的for计数i会增长哟,而vector.size却在减少哟,
你再仔细想一想,是不是嘛。
其实这是你的for loop写得不对也。
vector <int> testvector(5);
for (i=0;i <5;i++)
{
testvector[i]=i;
cout < <testvector[i];
}…
[/Quote]
river4321
2008-04-04
打赏
举报
回复
看来问题是当vector只剩两个元素时,erase(.begain())不起作用了就?
river4321
2008-04-04
打赏
举报
回复
testvector.erase(testvector.begin(),testvector.end());
cout<<testvector.size()<<endl;
这样果然能删到size()==0
Supper_Jerry
2008-04-04
打赏
举报
回复
testvector.erase(testit
--);
修改成这样,erase后指针会移到下一个元素
所以必须--
珍惜生命远离CPP
2008-04-04
打赏
举报
回复
应该是你erase的用法错误.
river4321
2008-04-04
打赏
举报
回复
vector<int> testvector(5);
for (i=0;i<5;i++)
{
testvector[i]=i;
cout<<testvector[i];
}
cout<<endl;
for (i=0;i<testvector.size();i++)
{
vector<int>::iterator testit=testvector.begin();
testvector.erase(testit);
cout<<testvector[0]<<endl;
}
myullian
2008-04-04
打赏
举报
回复
可以到size() = 0
星羽
2008-04-04
打赏
举报
回复
erase 当然可以一直可以到size == 0
不知道你怎么回事
ttkk_2007
2008-04-04
打赏
举报
回复
Removes an element or a range of elements in a vector from specified positions.
iterator erase(
iterator _Where
);
iterator erase(
iterator _First,
iterator _Last
);
你这个不动了是什么意思
ryfdizuo
2008-04-04
打赏
举报
回复
where is the code?
c++
vector
erase
用法
文章转载自:http://www.cnblogs.com/xudong-bupt/p/3522457.html C++
vector
中实际删除元素使用的是容器vecrot中std::
vector
::
erase
()方法。 C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。 1.std::
vector
::
erase
() 函数原
vector
erase
()用法
iterator
erase
(const_iterator position); iterator
erase
(const_iterator first, const_iterator last); 从
vector
中删除一个元素(position),或者范围元素( [first, last) ) 参数: position :iterator 指向
vector
中要删除元素的位置。 ...
【C++】
vector
中
erase
用法
在
vector
数组中我们删除数组经常用的就是
erase
方法,但是earse的用法一不注意就会出错,今天我就遇到了,所以在这里总结一下,避免大家用错。 1、首先介绍一下
erase
函数的原型: iterator
erase
(iterator position); iterator
erase
(iterator first, iterator last); 我们可以看到
erase
函数有两种函数原型,一种是给定要删除的位置,另一种是给定删除的区域。 2、接下来给出一种常见的错误 for(auto iter=vec.
vector
erase
使用
文章目录
vector
erase
原型删除普通元素删除指针元素remove与
erase
混合使用
vector
erase
原型 //
erase
的函数原型有两种形式 iterator
erase
(iterator p); // 删除某个迭代器p所指元素元素,返回被删元素之后元素迭代器。当p=end,函数行为无定义。 iterator
erase
(iterator b, iterator e); // 或者迭代器范围[b, e)的元素 在使用中需要注意到删除元素后迭代器的数量和位置的变化; 在进行多值删除时,
c++
vector
erase
删除元素
【代码】c++
vector
erase
删除元素。
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章