zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    阿里云高级技术专家周晶:基于融合与协同的边缘云原生体系实践
    Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算
    基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现
    【ClickHouse 技术系列】 在 ClickHouse 中处理实时更新
    LeetCode_Two Sum
    LeetCode_ Remove Element
    LeetCode_Same Tree
    LeetCode_Symmetric Tree
    LeetCode_Path Sum
    LeetCode_Merge Sorted Array
  • 原文地址:https://www.cnblogs.com/liuwu265/p/4032136.html
Copyright © 2011-2022 走看看