1. C++STL ライブラリの共通関数オブジェクトは次のとおりです。
1. std::less および std::greater: 2 つの値のサイズを比較するために使用されます。std::less は小さい値から大きい値への並べ替え (デフォルトの並べ替え方法) を意味し、std::greater は大きい値から小さい値への並べ替えを意味します。 。2. std::plus および std::minus: 加算および減算演算を実行するために使用されます。3. std::multiplies および std::divides: 乗算および除算演算を実行するために使用されます。4. std::modulus: モジュロ演算を実行するために使用されます。5. std::logical_and、std::logical_or、および std::logical_not: 論理 AND、論理 OR、および論理 NOT 演算を実行するために使用されます。6. std::equal_to、std::not_equal_to、std::greater_equal、および std::less_equal: 2 つの値の大小関係を比較するために使用され、等しい、不等、以上、以下を表します。 、 それぞれ。7. std::function: 関数をカプセル化するために使用され、任意の呼び出し可能オブジェクト (関数、関数ポインター、関数オブジェクトなど) を呼び出し可能オブジェクトにカプセル化できます。
2. コード例
例 1: std::greater の使用例
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
vector<int> vec = { 1, 3, 5, 2, 4 };
// 使用 std::sort 算法对 vec 进行排序
sort(vec.begin(), vec.end(), greater<int>());
// 输出排序后的结果
for (int i : vec) {
cout << i << " ";
}
return 0;
}
例 2: 乗算の使用例
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
vector<int> vec1 = { 1, 2, 3, 4 };
vector<int> vec2 = { 2, 4, 6, 8 };
vector<int> result(vec1.size());
// 使用 std::transform 算法对 vec1 和 vec2 进行元素级别的乘法运算
transform(vec1.begin(), vec1.end(), vec2.begin(), result.begin(), multiplies<int>());
// 输出运算结果
for (int i : result) {
cout << i << " ";
}
return 0;
}
結果 = {2, 8, 18, 32}