STL - list的能力

来源:互联网 发布:c 用指针链接两个数组 编辑:程序博客网 时间:2024/05/16 11:43
1. list:
使用双向链表管理元素;
不支持随机存取,不提供下标操作符和at()操作;
常数时间内完成元素的安插和移除;
安插和移除动作不会造成指向其他元素的各个pointers、references、iterators失效;
要么操作成功,要么什么都不发生;
不提供容量、空间重新分配操作;


2. size_type size()
返回现有元素的个数;


3. size_type max_size()
返回元素的最大可能数量,往往返回一个比较大的数值;


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


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


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


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


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


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


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


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


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


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


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


15. void push_front(const T & value)
在头部添加value的副本;


16. void pop_front()
将容器第一个元素移除,无返回值;


17. void remove(const T & value)
移除所有实值等于value的元素;


18. void remove_if(UnaryPredicate op)
移除所有使判断式op(elem)结果为true的元素;


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


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


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


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


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


24. void unique()
将list中所有相邻而重复的元素移除,使每一个元素都不同于下一个元素;


25. void unique(BinaryPredicate op)
移除list中所有相邻且使得二元判断式op(elem, nextelem)为true的元素。


26. void splice(iterator pos, list & source)
将source的所有元素移动(注意:不是复制,是移动)到*this,并安插到迭代器pos所指位置(pos所指元素之前,即左边)。


27. void splice(iterator pos, list & source, iterator sourcePos)
从source list中,将位于sourcePos位置上的元素移动至*this,并安插于迭代器pos所指位置。


28. void splice(iterator pos, list & source, iterator sourceBeg, iterator sourceEnd)
从source list中,将位于[sourceBeg, sourceEnd)区间内的所有元素移动到*this,并安插于迭代器pos所指位置。


29. void sort()
对list内的所有元素进行排序,以operator<对元素排序;


30. void sort(CompFunc op)
对list内的所有元素进行排序,以op(elem1, elem2)对元素排序;


31. void merge(list & source)
将list source内的所有元素并入*this,调用后source成为空容器;


32. void merge(list & source, CompFunc op)
将list source内的所有元素并入*this,调用后source成为空容器,如果*this和source在排序准则operator<或op之下已序,则新产生的list也是已序的;


33. void reverse()
将list中的元素颠倒次序。
原创粉丝点击