基本STL容器

C++ 标准模板库( STL,Standard Template Library )提供了多种容器,用于存储和管理数据。

  • vector(动态数组)

  • stack(栈)

  • queue(队列)

  • priority_queue(优先队列)

  • map(映射)

  • set(集合)
    以上是基本的 STL 容器
    另外,还包括:

  • multiset 有序集合,允许重复元素

  • multimap 有序键值对,允许重复键

  • unordered_set 无序集合,元素唯一

  • unordered_multiset 无序集合,允许重复元素

  • unordered_map 无序键值对,键唯一

  • unordered_multimap 无序键值对,允许重复键

下列是其的用法:(这里就不具体展开讲解所有的了)

vecor
动态数组,支持随机访问

vector<int> v = {1, 2, 3};
v.push_back(4);       // 添加元素
v.pop_back();         // 删除末尾元素
v.size();             // 获取大小
v[0];                 // 访问元素

map
键值对容器,基于红黑树实现

map<string, int> m;
m["apple"] = 10;      // 插入键值对
m["banana"] = 20;
m.find("apple");      // 查找键
m.erase("banana");    // 删除键值对

stack
后进先出( LIFO )容器(栈)

stack<int> s;
s.push(1);            // 压入元素
s.pop();              // 弹出元素
s.top();              // 访问栈顶元素

queue
先进先出( FIFO )容器(队列)

queue<int> q;
q.push(1);            // 入队
q.pop();              // 出队
q.front();            // 访问队首元素

set

set<int> s;  // 定义一个存储 int 类型的 set
遍历方法:
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
    std::cout << *it << " ";  // 输出
}

set 常用函数:

函数 描述
insert(value) 插入元素
erase(value) 删除元素
find(value) 查找元素,返回迭代器
size() 返回元素个数
empty() 判断是否为空
clear() 清空所有元素
begin() 返回指向第一个元素的迭代器
end() 返回指向末尾的迭代器
lower_bound(key) 返回第一个不小于 key 的元素的迭代器
upper_bound(key) 返回第一个大于 key 的元素的迭代器
以上就是一些基本的 STL 容器

又是全文 \LaTeX