c++中vector容器的功能及应用。

青春壹個敷衍的年華 提交于 2020-01-31 01:48:15

vector基本操作:

   1.头文件 #include<vector>。 注:一定要加上using namespace std;

   2.vector对象的创建: vector<int/char/string/基本数据类型/自定义类型/结构体类型/.....>vec ; (以下以int类型为例)

   3.vector对象尾部插入数据: vec.push_back(a);     注意: vector对象的下标从0开始!!!!!

   4.vector对象尾部删除数据: vec.pop_back(a);    

   5.vector中定位函数:          vec.at(i);      //相当于vec[i];

   6.vector中第一个元素的指针: vec.begin();

   7.vector中最后一个元素+1的指针:vec.end();

   8.vector中得到第一个元素的值: vec.front();

   9.vector中得到最后一个元素的值: vec.back();

   10.判断vector是否为空:           vec.empty();

   11.交换vector两个容器的值:     vector<int>a.swap(vec);

   12.vector对象的访问:vec[0],vec[1],vec[2]..............

                                使用迭代器访问vector中的元素         

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;                      //遍历所有元素~

 

      13.vector元素的插入: vec.insert(vec.begin()+i,a); 在第 i+1 个元素前面插入a.

    14.vector元素的删除: vec.erase(vec.begin()+2);   删除逻辑上的第3个元素,即vec[2],且后面元素自动前移一个位置。

                 vec.erase(vec.begin()+i,vec.begin()+j);   删除区间[i,j-1]的元素;

    15.vector中元素的个数: int count = vec.size();

    16.vector对象的清空:    vec.clear();

    17.vector中元素的翻转:reverse(vec.begin(),vec.end());     注:reverse()函数需要头文件  #include<algorithm>

    18 .vector中元素的排序:

#include <algorithm>
bool cmp(int a,int b){
    return a>b;
}
sort(vec.begin(),vec.end());   //  按升序排序
sort(vec.begin(),vec.end(),cmp); // 按降序排序

  19.vector中元素的去重:

 1 //在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留一个),其实它并不真正把重复的元素删除,
 2 //是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址,
 3 //因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序
 4 #include <iostream>
 5 #include <vector>
 6 #include <algorithm>
 7 using namespace std;
 8 int main()
 9 {
10     int a[9]= {0,1,2,3,4,8,9,3,5};
11     vector<int> vec(a,a+9);
12 
13     sort(vec.begin(), vec.end());   //一定要排序!!!!!!
14     vector<int>::iterator iter = unique(vec.begin(),vec.end());
15     vec.erase(iter,vec.end());
16     for( iter = vec.begin() ; iter != vec.end() ; iter ++ )
17         cout<<*iter<<" ";
18     return 0;
19 }

 

 


 

 

 

 

参考 http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!