zoukankan      html  css  js  c++  java
  • vector

    一、vector的数据结构

    vector的成员函数size()表示的是当前容器包含元素的数量,vector.size()=finish-start,vector的成员函数capacity()表示的是当前容器的容量,vector.capacity=end_of_storage-start。为了降低空间配置的速度成本,vector实际配置的大小可能比客户端需求量稍大,以备将来扩充的可能,这就是容量(capacity)的概念。一个简单的示意图如下:

    二、push_back

    将新元素插入vector尾部,该函数首先检查容器是否还有备用空间,如果有就直接在备用空间上构造元素,如果没有备用空间,则扩充空间(重新配置,移动元素,释放原空间)

    这里可以看到,在备用空间不够时进行动态增加,因为无法保证原空间之后有可供配置的空间,所以并不是在原空间之后续接新空间,而是以原大小的两倍配置一块更大的空间,然后将原内容拷贝过来,并在新空间的原内容之后构造新元素,并释放原空间。还可以看到,如果原空间大小不为0,则新的空间capacity增加为原空间capacity的两倍。还需要注意,由于是动态配置的新空间,位于原空间的上的旧的迭代器会失效

    三、pop_back

    四、erase

    erase清除某个位置上的元素,是将该位置元素清除,并将其后元素前移,效率是比较低的。

    五、clear

    六、insert

     

  • 相关阅读:
    fedora 24 使用扇贝网页版没有声音
    Fedora 23安装 NS2 (network simulator 2)
    如何扩大LVM 逻辑分区的大小?
    code::blocks编译出错
    Fedora 23 忘记root密码
    u盘安装Fedora23
    Derived 派生类
    移动点的坐标
    进栈 出栈
    C和C++语言&
  • 原文地址:https://www.cnblogs.com/scu-cjx/p/9010982.html
Copyright © 2011-2022 走看看