zoukankan      html  css  js  c++  java
  • C++ STL之vector常用指令

    只记载本人在ACM中常用的函数。

    vector,相当于动态数组,数组大小可变。声明vector以后,自动在内存中分配一块连续的内存空间进行数据存储。

    vector在内部进行插入、删除操作时间复杂度O(n)。

    1、初始化

    vector<int> v1;  //空的vector

    vector<int> v(5, 42);  //vector含有5个42

    2、常用运算符

    [], ==, !=, <=, >=, <, 和 >均可正常使用

    3、back返回最后一个元素

    4、begin返回第一个元素的迭代器

    5、clear清空所有元素

    6、vector为空时返回真,否则返回假

    7、end返回最末元素的迭代器

    8、erase删除

       iterator erase( iterator loc );  //删除loc处的元素
       iterator erase( iterator start, iterator end );  //删除start和end之间的元素

    9、front返回第一个元素的值

    10、insert

      iterator insert( iterator loc, const TYPE &val );  //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器,

      void insert( iterator loc, size_type num, const TYPE &val );  //在指定位置loc前插入num个值为val的元素  

      void insert( iterator loc, input_iterator start, input_iterator end );  //在指定位置loc前插入区间[start, end)的所有元素

    11、pop_back移除最后一个

    12、push_back在vector最后添加一个元素

    13、size返回vector中元素的数量个数

    14、accumulate,累加。accumulate(iterator a, iterator b, const TYPE &val)。将a和b之间的元素累加起来,初值赋为val。比如vector<int> ans; int t = accumulate(ans.begin(), ans.end(), 2),则t = sum{ans} + 2。比如vector ans = {"tt", "xx"}; string s = accumulate(ans.begin(), ans.end(), string(""));则s = "ttxx"。注意,如果val和vector中所装元素类型不同,会将vector里的元素转化成val的类型。

    15、unique函数,unique(v.begin(), v.end()),将v中重复元素全放在v的最后,比如122333会变成123233,然后返回第一个重复元素的位置。如果想删除v中所有重复元素,则v.erase(unique(v.begin(), v.end()), v.end())。还发现了一个网上的博文里面没有看到的问题,就是使用unique函数之前要先排序。

    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    vscode vue开发环境搭建
    mysql索引
    JVM垃圾回收与调优详解
    jenkins操作手册以及脚本编写
    Kibana 管理界面使用教程
    elk安装与搭建
    windows安装elasticsearch服务以及elasticsearch5.6.10集群的配置(elasticsearch5.6.10配置跟1.1.1的配置不太相同,有些1.1.1版本下的配置指令在5.6.10中不能使用)
    springBoot与Swagger2的整合
    java代码实现搜索elasticsearch索引数据
    springBoot配置elasticsearch搜索
  • 原文地址:https://www.cnblogs.com/plumrain/p/stl_vector.html
Copyright © 2011-2022 走看看