首页 > 代码库 > 【C++ STL】容器的选择

【C++ STL】容器的选择

c++提供了各具特长的容器,那么我们该如何选择最佳的容器?

  • 缺省状态下应该选择vector,因为vector内部结构最简单,并允许随机存取,所以数据的存取十分方便,数据的处理也快。
  • 如果经常要在头部和尾部安插和移动元素,应该采用deque,如果希望元素被移除时,容器能够自动缩减内存,也应该使用deque。
  • 如果经常在容器的中段执行元素的安插、移除和移动,可以使用list,list提供特殊的成员函数,可以在常数时间内从A容器将元素转移到B容器,但是list不支持随机存取,所以如果只知道list的头部元素,需要访问list的中部元素,性能会大打折扣。
  • 如果经常需要根据某个准则来搜寻某个元素,那么应该使用“以该排序准则对元素进行排序的”set或者multiset。
  • 如果需要key/value pair,应当使用map或者multimap。如果需要关联数组,也可以使用map或者multimap。

【C++ STL】容器的选择