浏览 55
扫码
STL(Standard Template Library)是C++标准库的一部分,提供了大量的通用模板类和函数,用于实现各种常用的数据结构和算法。STL中的算法部分提供了许多常用的算法,如查找、排序、遍历等,可以方便地对容器进行操作。
STL算法库包含在
- 查找算法:
- find:在指定范围内查找指定值的元素,返回第一个符合条件的元素的迭代器。
#include <algorithm>
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin(), vec.end(), 3);
if (it != vec.end()) {
std::cout << "找到了元素:" << *it << std::endl;
} else {
std::cout << "未找到元素" << std::endl;
}
- count:统计指定值在指定范围内出现的次数。
#include <algorithm>
std::vector<int> vec = {1, 2, 2, 3, 4};
int num = std::count(vec.begin(), vec.end(), 2);
std::cout << "值为2的元素出现次数为:" << num << std::endl;
- 排序算法:
- sort:对指定范围内的元素进行排序,默认升序。
#include <algorithm>
std::vector<int> vec = {5, 2, 7, 1, 9};
std::sort(vec.begin(), vec.end());
for (int num : vec) {
std::cout << num << " ";
}
- stable_sort:稳定排序算法,保持相等元素的相对位置不变。
#include <algorithm>
std::vector<int> vec = {5, 2, 7, 1, 9};
std::stable_sort(vec.begin(), vec.end());
for (int num : vec) {
std::cout << num << " ";
}
- 遍历算法:
- for_each:对指定范围内的每个元素执行指定操作。
#include <algorithm>
std::vector<int> vec = {1, 2, 3, 4, 5};
std::for_each(vec.begin(), vec.end(), [](int num) {
std::cout << num << " ";
});
- transform:对指定范围内的每个元素应用指定的操作,并将结果存储到另一个容器中。
#include <algorithm>
std::vector<int> vec = {1, 2, 3, 4, 5};
std::vector<int> newVec;
std::transform(vec.begin(), vec.end(), std::back_inserter(newVec), [](int num) {
return num * 2;
});
for (int num : newVec) {
std::cout << num << " ";
}
以上是一些常用的STL算法的用法,STL算法库中还包含许多其他有用的算法,可以根据需要查阅相关文档进行学习和使用。