C++中的核心标准模板包含:容器、迭代器、算法、函数对象、适配器
。
1.容器
容器提供了各种数据结构,包括向量(vector)、链表(list)、队列(queue)、栈(stack)、集合(set)、映射(map)等,可以根据实际需求选择合适的容器。
容器分为三大类:
序列容器、关联容器和无序容器。
1.1序列容器:存储元素的序列,允许双向遍历。
std::vector
:动态数组,支持快速随机访问;
std::queue
:双端队列,支持快速插入和删除;
std::list
:链表,支持快速插入和删除,但不支持随机访问。
1.2关联容器:存储键值对,每个元素都有一个键(key),和一个值(value),并通过键来组织元素。
std::set
:集合,不允许重复元素;
std::multiset
:多重集合,允许多个元素有相同的键;
std::map
:映射,每个键映射到一个值;
std::multimap
:多重映射,存储了键值对,其中键是唯一的,但值可以重复。
1.3无序容器:哈希表,支持快速的查找、插入和删除。
std::unordered_set
:无序集合;
std::unordered_multiset
:无序多重集合;
std::unordered_map
:无序映射;
std::unordered_multimap
:无序多重映射。
在使用上述容器时,需要在c++的文件前面引用,如使用vector
时,代码中增加:
#include <vector>
2.迭代器
迭代器允许程序员以统一的方式访问容器
中的元素,而不需要关心容器的具体实现细节。迭代器可以被视为指向容器中元素的指针,但比指针更灵活,迭代器可以用于访问、修改容器中的元素,并可以与STL算法
一起使用。