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

    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    TensorFlow学习笔记1:graph、session和op
    TensorFlow学习笔记2:逻辑回归实现手写字符识别
    Tensorflow学习笔记3:卷积神经网络实现手写字符识别
    Firstpython介绍
    Oracle sql语句学习
    总结__window dns域名解析错误及其解决方法
    Group By 和 Having, Where ,Order by语句的执行顺序
    Oracle 语句分类
    webbrowser自动登录,没有点击事件,不是submit提交按钮的情况下如何模拟点击登录
    webbrowser跨域访问iframe中的元素实现自动登录
  • 原文地址:https://www.cnblogs.com/plumrain/p/stl_vector.html
Copyright © 2020-2023  润新知