C++ 的标准模板库(STL)常用算法介绍
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 算法的使用。