社区
C++ 语言
帖子详情
vector 的erase问题
river4321
2008-04-04 08:59:52
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
...全文
119
13
打赏
收藏
vector 的erase问题
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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?
vector
与map的
erase
()函数详细解析
vector
循环删除的时候,
erase
(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it=
erase
(it) 这是
vector
的内部机制所造成的,所以对
vector
进行
erase
的时候特别注意迭代器是否会失效! map则可以直接
erase
(it...
c++
vector
erase
用法
C++
vector
中实际删除元素使用的是容器vecrot中std::
vector
::
erase
()方法。 C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。 1.std::
vector
::
erase
() 函数原
C++
vector
迭代器之
erase
出现的
问题
想要利用
erase
删除
vector
中某一指定的元素,需要明白以下几点: 1、这是
erase
的源代码,通过源代码,我们了解到 执行删除操作后,改变的是容器最后一个元素的位置,当前迭代器的位置是没有发生改变的。 iterator ...
vector
erase
()用法
iterator
erase
(const_iterator position); iterator
erase
(const_iterator first, const_iterator last); 从
vector
中删除一个元素(position),或者范围元素( [first, last) ) 参数: position :iterator ...
vector
erase
使用
文章目录
vector
erase
原型删除普通元素删除指针元素remove与
erase
混合使用
vector
erase
原型 //
erase
的函数原型有两种形式 iterator
erase
(iterator p); // 删除某个迭代器p所指元素元素,返回被删元素之后元素迭代...
C++ 语言
64,849
社区成员
250,501
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章