C++ 标准库常见容器
容器类型 | 类型分类 | 特点 | 示例代码 |
---|---|---|---|
vector | 序列容器 | 动态数组,支持随机访问,末尾操作效率高 | std::vector v = {1, 2, 3}; v.push_back(4); |
deque | 序列容器 | 双端队列,支持两端操作和随机访问 | std::deque d = {1, 2, 3}; d.push_front(0); |
list | 序列容器 | 双向链表,支持中间插入和删除,但不支持随机访问 | std::list l = {1, 2, 3}; l.push_back(4); |
array | 序列容器 | 固定大小的数组,支持随机访问 | std::array<int, 3> arr = {1, 2, 3}; |
set | 关联容器 | 存储唯一元素,自动排序 | std::set s = {3, 1, 4, 1, 5}; |
map | 关联容器 | 存储键值对,按键排序,键唯一 | std::map<int, std::string> m; m[1] = “one”; |
multiset | 关联容器 | 存储多个相同元素,自动排序 | std::multiset ms = {1, 1, 2, 3}; |
multimap | 关联容器 | 存储多个键值对,允许重复键 | std::multimap<int, std::string> mm; mm.insert({1, “one”}); |
unordered_set | 无序容器 | 无序存储,基于哈希表,快速查找 | std::unordered_set us = {3, 1, 4, 1, 5}; |
unordered_map | 无序容器 | 无序存储键值对,基于哈希表,快速查找 | std::unordered_map<int, std::string> um; um[1] = “one”; |
unordered_multiset | 无序容器 | 无序存储,允许重复元素,基于哈希表 | std::unordered_multiset ums = {1, 1, 2, 3}; |
unordered_multimap | 无序容器 | 无序存储,允许多个相同键的元素 | std::unordered_multimap<int, std::string> umm; umm.insert({1, “one”}); |
stack | 容器适配器 | 后进先出(LIFO) | std::stack s; s.push(1); |
queue | 容器适配器 | 先进先出(FIFO) | std::queue q; q.push(1); |
priority_queue | 容器适配器 | 优先队列,每次访问最大或最小元素 | std::priority_queue pq; pq.push(3); |