C++ STL中的 list,vector,deque三种容器的效率

北京理工大学 | 李明健

关于C++ STL中的 list,vector,deque三种容器的计算效率,进行测试如下。

建立三种容器,均包含100万个Point元素(Point是一个表示点的类):

首先测试遍历速度,每个列表循环100遍,相当于访问一亿次元素:

三次测试结果如下:


list: 935ms

vector: 478ms

deque: 415ms


list: 858ms

vector: 466ms

deque: 443ms


list: 781ms

vector: 411ms

deque: 399ms

可见deque优于其他两种。

随后测试插入、删除元素速度,每个列表随机删除1万个元素,再在末尾插入1万个元素:

三次测试结果如下:

list: 477ms

vector: 7s

deque: 46ms


list: 413ms

vector: 6s

deque: 45ms


list: 397ms

vector: 6s

deque: 32ms

可见deque仍优于其他两种。