C++ STL 提供了3个序列容器 :vector, deque, list
2013-12-16 19:50
656 查看
vector 中的元素是顺序存放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间,并把旧值复制到新的空间中,释法原空间,这个也要耗费很多时间,所以如果你知道元素的最大值,最好用reserve()函数初始最大空间,避免重新分配空间造成的时间。
deque 几乎所有的操作都和vector一样,出了可以在头添加和删除,多了个push_front(), pop_front();
list 是双链表,元素在内存中是分散的不连续的,它使用指针left,right,指向前一个元素和后一个元素。所以要删除和添加只要动动指针,所以很快,但是因为是不连续的所以要访问一个元素,你只能遍历序列。
deque 几乎所有的操作都和vector一样,出了可以在头添加和删除,多了个push_front(), pop_front();
list 是双链表,元素在内存中是分散的不连续的,它使用指针left,right,指向前一个元素和后一个元素。所以要删除和添加只要动动指针,所以很快,但是因为是不连续的所以要访问一个元素,你只能遍历序列。
相关文章推荐
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- C++ STL基本容器string,vector,list,deque,map..[转]
- STL提供了三个最基本的容器:vector,list,deque。
- 转:STL提供了三个最基本的容器:vector,list,deque
- STL提供了三个最基本的容器:vector,list,deque。
- STL提供了三个最基本的容器:vector,list,deque
- STL提供了三个最基本的容器:vector,list,deque
- stl提供了三个最基本的容器:vector,list,deque
- STL提供了三个最基本的容器:vector,list,deque
- stl提供了三个最基本的容器:vector,list,deque
- 转:STL提供了三个最基本的容器:vector,list,deque。
- STL序列容器 vector, list, deque的比较
- STL概览-序列容器vector,deque,list
- STL序列容器vector、deque、list和array学习笔记
- STL概览-序列容器vector,deque,list
- STL提供了三个最基本的容器:vector,list,deque
- C++的STL容器之顺序性容器vector、list、deque