STL - vector的能力

1. vector:
支持随机存取;
在末端附加和删除元素,性能很好,在前端或中部安插、删除元素性能不好;


2. size_type size()
返回当前vector中现有元素的数量;


3. size_type capacity()
返回当前vector实际能够容纳的最大元素数量,调用reserve()可以重新设置此容纳能力;


4. size_type max_size()
返回容器可包含的最大元素个数,取决于容器的内存模型,往往返回一个比较大的数值;


5. void reserve(size_type)
扩充容量,改变capacity()的返回值,如果参数值比当前capacity()所返回的当前容量值小,则不会引发任何反应;


6. 关于容量缩减:
vector不能使用reserve()来缩减容量,因此即使删除元素,其references、pointers、iterators也会继续有效,继续指向动作发生前的位置;然而安插操作可能使references、pointers、iterators失效,因为安插可能导致vector重新配置空间。


7. bool empty()
检查容器是否为空,为空返回true;


8. void assign(size_type num, const T & value)
以num个value副本替换掉所有现有元素;


9. void assign(InputIterator beg, InputIterator end)
以[beg, end)内的元素副本替换所有的现有元素;


10. void swap(container & c)
与c交换所有内容;


11. reference at(size_type idx)
返回索引idx所代表的元素,无效索引将导致out_of_range异常;


12. reference operator[](size_type idx)
返回索引idx所代表的元素,无效索引将导致未定义行为;


13. reference front()
返回第一个元素,容器中无元素将导致未定义行为;


14. reference back()
返回最后一个元素,容器中无元素将导致未定义行为;


15. iterator insert(iterator pos, const T & value)
在迭代器pos的位置上(pos所指元素之前,即:左边)安插一个value副本,返回新元素的位置;


16. void insert(iterator pos, size_type num, const T & value)
在迭代器pos的位置上安插num个value的副本,无返回值;


17. void insert(iterator pos, InputIterator beg, InputIterator end)
将区间[beg, end)内所有元素的副本安插于迭代器pos所指的位置上;


18. void push_back(const T & value)
在尾部添加value的副本;


19. void pop_back()
将容器最后一个元素移除,无返回值;


20. iterator erase(iterator pos)
将迭代器pos所指位置上的元素移除,返回其后继元素的位置;


21. iterator erase(iterator beg, iterator end)
移除区间[beg, end)内的所有元素,返回被移除的最后一个元素的后继元素的位置;


22. void resize(size_type num)
将容器大小改为num,如果num大于size(),在尾端通过default构造函数构造新元素;如果num小于size(),则移除后面多余的尾端元素,直到大小为size(),每个被移除的元素的析构函数都会被调用;


23. void resize(size_type num, T value)
将容器大小改为num,如果num大于size(),在尾端填充value的副本作为新元素;如果num小于size(),则移除后面多余的尾端元素,直到大小为size(),每个被移除的元素的析构函数都会被调用;


24. void clear()
移除所有元素,所有元素的析构函数都将被调用,size()将变为0。

你可能感兴趣的:(C++)