介绍C++ STL 中的三个常见遍历算法
在C++标准模板库(STL)中,遍历算法是对容器中的元素执行操作的关键工具。它们能让你方便地访问容器中的元素,并对其执行各种操作。
1. for_each() 函数
for_each()
函数允许对容器中的每个元素执行指定的操作。
#include <iostream>
#include <vector>
#include <algorithm>
void PrintElement(int element) {
std::cout << element << " ";
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用 for_each 遍历并打印每个元素
std::for_each(vec.begin(), vec.end(), PrintElement);
return 0;
}
2. std::transform() 函数
std::transform()
函数允许对容器中的元素执行转换操作,并将结果存储在另一个容器中。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> original = {1, 2, 3, 4, 5};
std::vector<int> doubled;
// 使用 transform 将原始 vector 中的元素乘以 2 存储到 doubled vector 中
std::transform(original.begin(), original.end(), std::back_inserter(doubled), [](int element) {
return element * 2;
});
// 打印新生成的 doubled vector 中的元素
for (int num : doubled) {
std::cout << num << " ";
}
return 0;
}
3. range-based for 循环
C++11 引入的范围 for 循环允许以更简洁的方式遍历容器中的元素。
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用范围 for 循环遍历并打印每个元素
for (int element : vec) {
std::cout << element << " ";
}
return 0;
}