C++ 的标准模板库(STL)提供了丰富的算法,用于对容器中的元素进行各种操作和处理。下面我将介绍几个常用的 STL 算法,并为每个算法提供一个简单的示例来说明其基本用法。
1. std::for_each
(遍历)
#include <iostream>
#include <algorithm>
#include <vector>
void print(int i) {
std::cout << i << " ";
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用 for_each 算法遍历输出容器中的元素
std::for_each(vec.begin(), vec.end(), print);
return 0;
}
2. std::transform
(转换)
#include <iostream>
#include <algorithm>
#include <vector>
int square(int i) {
return i * i;
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::vector<int> result;
// 使用 transform 算法对容器中的元素进行转换
std::transform(vec.begin(), vec.end(), std::back_inserter(result), square);
// 输出转换后的元素
for (int i : result) {
std::cout << i << " ";
}
return 0;
}
3. std::sort
(排序)
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6, 5};
// 使用 sort 算法对容器中的元素进行排序
std::sort(vec.begin(), vec.end());
// 输出排序后的元素
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
4. std::accumulate
(累加)
#include <iostream>
#include <numeric>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用 accumulate 算法对容器中的元素进行累加
int sum = std::accumulate(vec.begin(), vec.end(), 0);
std::cout << "Sum: " << sum << std::endl;
return 0;
}
通过这些简单的示例,你可以了解到如何使用 C++ STL 中的一些常用算法(for_each、transform、sort、accumulate),并对容器中的元素进行遍历、转换、排序和累加等操作。希望这些示例能帮助你更好地理解 STL 算法的使用。