社区
C++ 语言
帖子详情
vector 的erase问题
river4321
2008-04-04 08:59:52
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
...全文
116
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?
c++之
vector
容器
erase
操作
c++之
vector
容器
erase
操作,在容器列表中删除中间一行的操作过程,代码分为一维容器和二维容器操作两部分,详细见代码
vector
中删除元素
erase
的用法
erase
的用法删除
vector
中特定的元素。非常简单实用。
vector
与map的
erase
()函数详细解析
vector
循环删除的时候,
erase
(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it=
erase
(it) 这是
vector
的内部机制所造成的,所以对
vector
进行
erase
的时候特别注意迭代器是否会失效! map则可以直接
erase
(it...
stl容器set,map,
vector
之
erase
用法与返回值详细解析
在使用 list、set 或 map遍历删除某些元素时可以这样使用,如下所示
c++
vector
erase
用法
C++
vector
中实际删除元素使用的是容器vecrot中std::
vector
::
erase
()方法。 C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。 1.std::
vector
::
erase
() 函数原
C++ 语言
64,646
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章