版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/89784654
一 在vector中查找元素
1 代码
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
int main(){
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
vector<int>::iterator iter=find(vec.begin(),vec.end(),3);
if ( iter==vec.end())
cout << "Not found" << endl;
else
cout << "Found" << endl;
return 0;
}
2 运行
[root@localhost charpter03]# g++ 0312.cpp -o 0312
[root@localhost charpter03]# ./0312
Found
3 说明
使用find函数在vector中查找。注意find函数并不属于vector的成员,而存在于算法中,所以应当加上头文件#include<algorithm>
二 vecrot的删除函数说明
1 点睛
vector的删除,可以有erase或pop_back函数。erase可以删除指定元素,而pop_back只能删除向量的最后一个数据。
2 erase函数
函数原型:
iterator erase ( iterator position );
iterator erase ( iterator first, iterator last );
函数功能:
erase删除vector容器中的指定元素
第1个函数的作用:删除vector容器中position处的的元素。
第2个函数的作用:删除vector容器中[first,last)之间的元素。
函数参数:
position:迭代器,指向要删除元素。
first:迭代器,指向要删除[first,last)之间元素的第1个元素。
last:迭代器,指向要删除[first,last)之间元素的最后1个元素。
函数返回值:
函数返回删除vector中最后被删除元素中的下一个位置。
三 使用erase删除vector中某个元素
1 代码
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
int main(){
vector<int> vec;
vec.push_back(1);
vec.push_back(3);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
vector<int>::iterator iter=vec.begin();
for(;iter!=vec.end();){
if(*iter==3){
iter=vec.erase(iter);
}else{
++iter;
}
}
for(iter=vec.begin();iter!=vec.end();iter++){
cout<<*iter<<" ";
}
return 0;
}
2 运行
[root@localhost charpter03]# g++ 0313.cpp -o 0313
[root@localhost charpter03]# ./0313
1 4 5 [root@localhost charpter03]
3 说明
for语句条件里面删除元素时,返回值指向已删除元素的下一个位置,不是删除元素时,则直接进行++操作。
四 vector的pop_back函数使用
1 代码
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
int main(){
vector<int> vec;
for(int i=0;i<10;i++)
vec.push_back(i);
vector<int>::iterator iter=vec.begin();
for(iter=vec.begin();iter!=vec.end();iter++){
cout<<*iter<<" ";
}
cout<<endl;
vec.pop_back();
for(iter=vec.begin();iter!=vec.end();iter++){
cout<<*iter<<" ";
}
cout<<endl;
return 0;
}
2 运行
[root@localhost charpter03]# g++ 0314.cpp -o 0314
[root@localhost charpter03]# ./0314
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
3 说明
首先定义了一个存放整型数的vector,里面存放了0到9,用pop_back函数,把最晚放入vector的9删除。