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算法
一起使用。