一、介绍
list即双向链表,由多个指向下一个节点指针的节点组成。list相比vector的特点是取数据慢,但可以动态的分配内存空间,但可以在某个位置插入和删除数据的时间是常数时间。
二、函数
void push_front(_Ty&& _Val) void push_back(_Ty&& _Val) iterator insert(const_iterator _Where, _Ty&& _Val) iterator insert(const_iterator _Where,_XSTD initializer_list<_Ty> _Ilist) iterator begin() iterator end() void resize(size_type _Newsize) void pop_front() void push_back(const _Ty& _Val) void pop_back() iterator erase(const_iterator _First, const_iterator _Last) void splice(const_iterator _Where, _Myt& _Right) void remove(const _Ty& _Val) void merge(_Myt& _Right) void reverse() _NOEXCEPT void sort()
三、易错点
std::list为空时调用pop_front的访问越界问题
std::list为空时调用pop_back访问越界问题
所以在使用pop_front 、 pop_back要先判断list是否为空
四、效率
size()函数速度极慢
微软的list push_back()效率低于vector效率,推测可能是双向链表的原因;