首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ vector 的erase 方法使用有关问题 如何改呢

2013-12-02 
C++ vector 的erase 方法使用问题怎么改呢#include vector #include iostream using namespace stdin

C++ vector 的erase 方法使用问题 怎么改呢
#include <vector> 
#include <iostream> 
using namespace std;
int main()
{
vector <int> v1;
vector<int>::iterator iter;
for(int i=0;i<=100;i++)
{
v1.push_back(i);
}
iter=v1.begin();
while(1)
{
if(iter+4>v1.end())
break;
else 
iter=v1.erase(iter+1,iter+4);
}
    system("pause");
return 0;
}
C++ vector 的erase 方法使用有关问题  如何改呢C++ vector 的erase 方法使用有关问题  如何改呢
怎么改呢
我想实现,数组的数据精简,每隔三个点我们保存一个点
[解决办法]

引用:
Quote: 引用:

#include<iostream>
#include <vector> 
using namespace std;

int main()
{
vector <int> v1;
vector<int>::iterator iter;
for(int i=0;i<=100;i++)
{
v1.push_back(i);
}
iter=v1.begin();
while(1)
{
if(iter>v1.end()-4)//我只改了这句话,其他的都没动过
break;
else 
iter=v1.erase(iter+1,iter+4);
}
for(auto v:v1){
cout<<v<<" ";
}
system("pause");
return 0;
}

你确定你能正常的运行而没有中断?我用的VS2010,还是要中断啊

我在VS2012和gcc下都正常。
[解决办法]
引用:
迭代器不能比较大小吧,,,,,

只有随机迭代器可以比较大小,而vector就是随机迭代器

热点排行