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


    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 

  • 相关阅读:
    Ruby创始人谈Ruby的blocks和closure结构
    C语言字节对齐
    如今的开发者应了解哪些过去闻所未闻的新技能
    mongo下面总是缺少那么几个好用的工具试试这个吧MongoDB管理工具
    我们程序员为什么难晋升
    CMMI vs. Scrum vs. XP
    Rspec在Rails项目中的使用
    什么是Scrum?
    大型软件产品的敏捷案例 分享
    补充“为什么Scrum不行” (转自陈勇)
  • 原文地址:https://www.cnblogs.com/LGJC1314/p/6680054.html
Copyright © 2020-2023  润新知