前言vector、list 和 deque 等容器主要按照元素的位置组织数据,属于序列式容器。map 和 set 则按照关键字组织数据,能够根据关键字快速完成查找、插入和删除,属于关联式容器。
本文将从 pair 开始,依次介绍 set、map、multiset 和 multimap 的使用,并继续分析它们与二叉搜索树、AVL 树和红黑树之间的关系。
本文主 ...
前言在前面的关联式容器中,map 和 set 通常借助红黑树组织数据,查找、插入和删除的时间复杂度为 O(log n),并且能够保持关键字有序。
C++11 又引入了一组无序关联式容器:
std::unordered_map;
std::unordered_set;
std::unordered_multimap;
std::unordered_multi ...
前言二叉树的基础内容通常包括树的概念、四种遍历方式以及节点个数、高度等递归问题。本文在这些基础上继续学习二叉搜索树,并整理二叉树中常见的进阶面试题。
学习二叉搜索树还有一个重要目的:为后续理解 std::set、std::map、AVL 树和红黑树打下基础。
本文主要内容如下:
二叉搜索树的性质;
二叉搜索树的查找、插入和删除;
二叉搜索树的完整 C++ ...
系统梳理 C++ 多态的构成条件、虚函数、虚函数表、抽象类与常见问题。
