• C++中vector 容器的基本操作


    vector是一种简单高效的容器,具有自动内存管理功能。对于大小为n的vector容器,它的元素下标是0~n-1。

    vector有二个重要方法:
        begin(): 返回首元素位置的迭代器。
        end(): 返回最后一个元素的下一个元素位置的迭代器。

    1、 vector对象创建的几种方式。
    1)不指定容器元素个数。
        vector<double> v;
    2)指定容器元素个数。
        vector<double> v(10);            //10个元素
    3)指定容器元素个数并初始化。
        vector<double> v(10, 7.8);        //10个元素,初始化为7.8

    2、访问和遍历vector容器
    1)下标方式访问vector元素并赋值。类似数组的访问和赋值
        v[0] = 3.6;     v[3]=5.5;
    2)使用迭代器配合循环对vector进行遍历访问

    1 vector<double> v(3);
    2 v[0] = 1.2;
    3 v[1] = 6.1;
    4 v[2] = 3.7;
    5 vector<double>::iterator it;
    6 for(it=v.begin(); it!=v.end(); it++)
    7 {
    8     cout<<*it<<endl;
    9 }

    3、 向vector中添加元素

    1) 向vector容器的尾部追加新元素。
        v.push_back(new_element);
    2) insert()方法在vector对象的任意位置前插入一个新元素,同时vector自动扩张一个元素空间,插入位置后的所有元素都向后挪动一个位置。
        v.insert(v.begin()+2, 12.5);        //在第二个元素前插入新元素12.5。
        v.insert(v.end(), 6.5);            //在容器的末尾加入了新元素6.5。

    4、元素的删除
    1) 删除一个元素或一段区间中所有元素
        v.erase(v.begin()+2);            //删除第二个元素,从0开始计数
        v.erase(v.begin()+1, v.begin()+5);    //删除第1~5中的所有元素。
    2) 删除vector中所有元素
        v.clear();                //删除v中的所有元素

    5、对vector中元素排序
    1) sort()对元素排序。需要头文件”#include <algorithm>”
        sort(v.begin(), v.end());        //sort()默认升序排序

    1 //自己设计比较函数进行排序
    2 bool comp(const int &a, const int &b)
    3 {
    4     return a>b;
    5 }
    6 sort(v.begin(), v.end(), comp);            // 元素降序排列

    2)reverse()反向排列。需要头文件”#include <algorithm>”

        reverse(v.begin(), v.end());        //反向排列向量的从头到尾的元素

    6、获得vector的大小
    1) 使用size返回向量的大小,即元素个数。
        v.size();                //返回v的元素个数
    2) empty()判断向量是否为空。
        v.empty();                //v如果为空,则返回逻辑真,即1,否则返回逻辑假0。

    参考文献:
    曾宗根, ACM程序设计, 北京大学出版社, 2008.11

  • 相关阅读:
    查询BLOB字段的长度
    java中使用公钥加密私钥解密原理实现license控制
    Eclipse调试Bug的七种常用技巧
    mysql视图
    动态缓存技术之CSI,SSI,ESI
    取得图片原来的大小
    fieldset也是表单元素
    isInt
    取得浏览器的文档类型
    option的value、text与label
  • 原文地址:https://www.cnblogs.com/liuwu265/p/4032136.html
Copyright © 2020-2023  润新知