C++中的STL容器与算法

本文最后更新于:2023年9月17日 晚上

标题:C++中的STL容器与算法

简介:
STL(Standard Template Library)是C++标准库的一部分,提供了丰富的容器和算法,可以极大地提升程序开发效率和代码质量。

正文:

1. 容器

STL提供了多种容器,每种容器都有不同的特性和适用场景。

  • vector: 动态数组,支持快速随机访问。
  • list: 双向链表,支持高效的插入和删除。
  • set: 基于红黑树的集合,元素有序且唯一。
  • map: 基于红黑树的映射表,键值对存储。
  • queue: 队列,先进先出。
  • stack: 栈,后进先出。
1
2
3
4
5
#include <vector>
#include <map>

std::vector<int> vec = {1, 2, 3, 4, 5};
std::map<std::string, int> myMap = {{"apple", 3}, {"banana", 2}};

2. 算法

STL提供了大量的算法,可以用于对容器进行各种操作。

  • 排序算法: std::sort, std::stable_sort, std::partial_sort等。
  • 查找算法: std::find, std::binary_search, std::lower_bound等。
  • 算术算法: std::accumulate, std::inner_product, std::transform等。
1
2
3
4
5
#include <algorithm>
#include <numeric>

std::vector<int> vec = {1, 2, 3, 4, 5};
int sum = std::accumulate(vec.begin(), vec.end(), 0);

3. 迭代器

迭代器是STL的一个关键概念,它提供了一种访问容器元素的通用方式。

  • 正向迭代器: begin(), end()
  • 反向迭代器: rbegin(), rend()
  • 随机访问迭代器: std::vector, std::deque等支持
1
2
3
4
std::vector<int> vec = {1, 2, 3, 4, 5};
for(auto it = vec.begin(); it != vec.end(); ++it) {
// 使用迭代器访问元素
}

结论:

STL提供了丰富的容器和算法,可以大幅提升C++程序的开发效率和代码质量。熟练使用STL可以使代码更简洁、高效且易于维护。


C++中的STL容器与算法
https://jinbilianshao.github.io/2023/09/17/C-中的STL容器与算法/
作者
连思鑫
发布于
2023年9月17日
许可协议