社区
C++ 语言
帖子详情
vector 的erase问题
river4321
2008-04-04 08:59:52
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
...全文
111
13
打赏
收藏
vector 的erase问题
一个vector最多可以erase()到什么程度?我觉得好像到size()=3就不动了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
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
中使用
erase
操作删除迭代器的
问题
(避免野指针)以及end的地址变化
在
vector
中,使用
erase
来剔除对应的元素,但是使用iterator的时候需要注意不要让iterator变成野指针
vector
的
erase
在C++ Reference 中,对
erase
的说明如下:
vector
::
erase
- C++ Reference http://www.cplusplus.com/reference/
vector
/
vector
/
erase
/ //c++98 i...
错误的
vector
erase
引起的
问题
vector
执行
erase
的时候,begin的数值是负数,导致
erase
以后,
vector
的size是一个超级大的数据。
vector
::
erase
()函数调用出错
问题
vector
::
erase
()函数调用出错
问题
vector
::
erase
()方法有两种重载形式 iterator
erase
( iterator _Where);//删除某个元素 iterator
erase
( iterator _First, iterator _Last);//删除一段元素,注意是个半开区间 返回值: 如果是删除指定位置的元素时,返回
vector
::
erase
出错
问题
转载自 sicceer 最终编辑 sicceer
vector
::
erase
():从指定容器删除指定位置的元素或某段范围内的元素
vector
::
erase
()方法有两种重载形式 如下: iterator
erase
( iterator _Where); 1.iterator
erase
( iterator _First, iterator _Las
关于
vector
的
erase
问题
处理
Vector
的
erase
成员函数有许多容易导致
问题
的情况.其中以迭代器失效
问题
最为常见. 关于迭代器的失效
问题
,以及
erase
如何删除
vector
中指定值(可能不止一个),我曾今也对
erase
的使用情况和内容结合起来写过一些字. 博文地址:http://blog.csdn.net/yuanweihuayan/article/details/6790516 似乎对于删除的解析已经够全面了.可是
C++ 语言
63,594
社区成员
250,391
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下