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

remove()返回值是什么解决办法

2013-12-23 
remove()返回值是什么面试宝典有道题:#includeiostream#includevectorusing namespace stdvoid print

remove()返回值是什么
面试宝典有道题:
#include<iostream>
#include<vector>
using namespace std;

void print(vector<int>);

int main()
{
vector<int> array; 
array.push_back(1);
array.push_back(6);
array.push_back(6);
array.push_back(3);
//删除array中的所有的6
vector<int>::iterator itor;
vector<int>::iterator itor2;
itor=array.begin();
for (itor=array.begin();itor!=array.end();itor++;)
{
if (6==*itor)
{
itor2=itor;
array.erase(itor2);
}
}
print(array);
return 0;
}

void print(vector<int> v)
{
cout<<"\nvector size is: "<<v.size()<<endl;
}
以上有问题,itor会变成野指针,解决办法:
array.earse( remove(array.begin(), array.end(),6),  array.end() );
请问remove()返回值是什么, 是第一个值为6的元素的itor吗?
[解决办法]

template <class ForwardIterator, class T>
  ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val)

热点排行