0. 概述 在 C++11 引入 unordered_set 与 unordered_multiset 前,标准库中已有 set 与 multiset 两种有序关联容器,二者底层基于红黑树实现,虽能保证元素的有序性,却需付出 O (log n) 的时间复杂度代价。而实际开发中,大量场景更关注 “快速操作” 而非 “元素有序”—— 比如判断某个值是否…
1. Set 在 C++ 标准库中,std::set 是另一种常用的关联容器,它以单个元素的形式存储数据,核心特点是元素唯一且有序。凭借底层红黑树的实现,set 支持高效的插入、删除和查找操作,在去重、有序存储等场景中应用广泛(比如存储唯一 ID、维护有序序列等)。本文将从 set 的核心特性出发,详解其用法、语法演进及同类容器 multiset …
0. 概述 在 C++11 引入 unordered_map 与 unordered_multimap 前,标准库中已有 map 与 multimap 两种有序关联容器,但二者底层基于红黑树实现,虽能保证键的有序性,却需付出 O (log n) 的时间复杂度代价。而实际开发中,大量场景更关注 “快速操作” 而非 “元素有序”—— 比如通过用户 ID…
1. Map 在 C++ 标准库的容器家族中,std::map 绝对是 “明星成员”—— 它以键值对(Key/Value Pair)的形式存储数据,支持高效的查找、插入和删除操作,在数据映射、快速检索等场景中应用广泛(比如配置项存储、用户信息匹配等)。今天这篇文章,我们就从 map 的核心特性出发,一步步拆解它的用法、语法演进,以及同类容器 mul…
1. Queue 在 C++ 编程世界里,标准模板库(STL)宛如一座宝库,为开发者们提供了丰富且强大的数据结构与算法工具。其中,queue 作为一种特殊的数据结构,在众多场景中扮演着不可或缺的角色。本文将深入剖析 queue 的特性、底层实现、操作方法以及应用场景,帮助读者全面掌握这一重要工具。 1.1 概述 queue,即队列,是一种遵循先进先…
1. Stack 1.1 基础概念 在计算机科学领域,stack(栈)是一种极为重要的数据结构,遵循 “先进后出(First In Last Out,FIFO)” 原则。形象地说,它就像一个只有一端开口的容器,你从开口处放入物品,最后放入的物品总是最先被取出。在 C++ 的 STL 中,stack 被实现为一个容器适配器。所谓容器适配器,是对其他容…
List List是一个能够存放任意性别的双向链表(doubly linked list) 可以向List中介入一个子链表 为了使用List,必须用include指令包含如下文件,并通过std命名空间去访问: #include <list> int main() { std::list l; } List 的优势 List 的优势在于其…
Vector 概述 Vector 是一个能够存放任意型别的动态数组 Vector 的数据结构和操作与数组 (array) 类似,在内存中的表现形式是一段地址连续的空间 Vector 与数组的区别在于,数组大小往往是定义时就固定的 (比如:char buffer [256]);Vector 支持动态空间大小调整,随着元素的加入,vector 内部会自…