C++作为一种强大的编程语言,为开发者提供了多种数据结构来处理和组织数据。以下是一些常见的C++数据结构:
1. 数组(Array):一组相同类型的元素,通过索引访问。数组在内存中是连续存储的。
2. 链表(Linked List):由节点组成的线性数据结构,节点包含数据和指向下一个节点的指针。
3. 栈(Stack):后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。
4. 队列(Queue):先进先出(FIFO)的数据结构,允许在队尾插入,在队头删除。
5. 树(Tree):分层次的数据结构,包含根节点、子节点和叶节点等。
6. 二叉树(Binary Tree):每个节点最多有两个子节点的树结构。
7. 二叉搜索树(Binary Search Tree):一种特殊的二叉树,左子节点的值小于父节点,右子节点的值大于父节点。
8. 堆(Heap):一种特殊的树结构,通常用于实现优先队列,分为最大堆和最小堆。
9. 图(Graph):由节点和边组成的数据结构,用于表示各种关系和连接。
10. 哈希表(Hash Table):通过散列函数将键映射到值的数据结构,实现了高效的查找和插入操作。
11. 散列集合和散列映射(Unordered Set/Map):使用哈希表实现的集合和映射,C++11引入。
12. 链接散列集合和链接散列映射(Unordered Multiset/Multimap):基于链表的散列集合和映射,C++11引入。
13. 字典(Dictionary):一种映射关系,将键映射到值。
14. 向量(Vector):动态数组,能够自动扩展容量。
15. 字符串(String):字符的有序序列,C++中有`std::string`类来表示。
16. 集合(Set):不重复元素的集合。
17. 映射(Map):键值对的集合,每个键都唯一。