C++ の一般的な関数オブジェクト

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}

おすすめ

転載: blog.csdn.net/hu853712064/article/details/129766853
おすすめ