• #include <vector>


    vector

    (vector)可以理解成动态数组,动态占用空间,动态释放空间。

    声明方式

    vector<int> a;
    vector<int>::iterator it;
    

    (vector)支持任意访问,跟数组一样直接调用下标。但是不支持任意插入,只支持在末端插入。(vector)动态占用空间和释放空间都是二的若干次方的占用和释放,也就是若实际占用等于最大占用,最大占用空间将翻一倍。如果实际占用空间低于最大占用空间的(dfrac{1}{4}),那么最大占用空间就会变成原来的一半。所以(vector)比数组慢得多。接下来我们以保存(int)类型的数据的(vector)为例:

    a.size()

    返回(a)的实际长度。

    a.empty()

    返回一个(bool)类型,表示(a)是否为空。

    a.clear()

    (a)全部清空。

    迭代器

    (vector)的迭代器支持随机访问,可以让迭代器加上一个整数,与指针的移动类似。把两个迭代器相减会返回这两个迭代器之间的距离。

    a.begin()/a.end()

    返回(a)的首迭代器和尾迭代器,尾迭代器为空。

    a.front()/a.back()

    返回(a)的第一个元素和最后一个元素,等价于a[0]/a[a.size()-1]。

    a.push_back(x)/a.pop_back()

    (x)插入(a)的尾端/弹出(a)尾端的元素。

    遍历a的两种方法

    for(int i=0;i<a.size();i++)
        cout<<a[i]<<endl;
    for(vector<int>::iterator it=a.begin();it!=a.end();it++)
        cout<<*it<<endl;
    

    第一种复杂度为(O(n^2))
    第二种方法对大多数(stl)都有用。

  • 相关阅读:
    正则表达式的单行模式和多行模式
    js 正则匹配(去掉html标签)
    ES6中set和map的区别
    回调函数的使用场合
    javascript逻辑运算符“||”和“&&”
    [bzoj3210]花神的浇花集会
    [bzoj2438][中山市选2011]杀人游戏
    [bzoj2743][HEOI2012]采花
    [luoguP3729]曼哈顿计划EX
    [bzoj4850][Jsoi2016]灯塔
  • 原文地址:https://www.cnblogs.com/AKMer/p/9890052.html
Copyright © 2020-2023  润新知