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函数之前要先排序。

    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    [转] linux中 参数命令 -- 和
    ECharts 报表事件联动系列一:刷新页面
    Echarts 简单报表系列三:饼状图
    Echarts 简单报表系列二:折线图
    Echarts 简单报表系列一:柱状图
    Golang 在 Mac、Linux、Windows 下如何交叉编译(转)
    Spring Boot 打war包并利用docBase指定根目录为打包的工程
    JdbcTemplate查询返回JavaBean的几种方法
    Spring JdbcTemplate 查询结果集Map反向生成Java实体(转)
    Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)
  • 原文地址:https://www.cnblogs.com/plumrain/p/stl_vector.html
Copyright © 2011-2022 走看看