欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

C++ STL 容器性能对比与选用指南

时间:2026年08月12日 05:34:29 浏览:0

C++ STL 容器性能对比与选用指南


选择合适的容器对程序性能至关重要。


1. 顺序容器



































容器 随机访问 插入/删除(中间) 插入/删除(末尾) 适用场景
vector O(1) O(n) 均摊 O(1) 频繁随机访问,尾部增删
deque O(1) O(n) O(1) 头尾 需要头尾操作
list O(n) O(1) O(1) 频繁中间插入/删除

2. 关联容器



  • 有序(红黑树):set, map, multiset, multimap(对数复杂度)。

  • 无序(哈希表):unordered_set, unordered_map(平均常数复杂度)。


3. 选用原则



  • 默认使用 vector,除非有明确理由。

  • 频繁在头部插入,用 deque

  • 频繁在中间插入,用 list

  • 需要快速查找,用 unordered_map(注意哈希冲突)。

  • 需要有序遍历,用 map


4. 示例


// 缓存场景:快速查找
std::unordered_map<std::string, User> user_cache;

// 排行榜:有序遍历
std::map<int, std::string> score_rank;