php中文网

C++ 函数的 STL ternary_function 怎么用?

php中文网

stl ternary_function 是一种接受三个参数并返回一个结果的特殊函数对象。它用于对三个值执行操作,例如相加或相乘。通过创建自定义结构并实现 operator() 函数,可以实现 ternary_function,具体操作包括:定义一个 struct 来实现 ternary_function。在 struct 中实现 operator() 函数,该函数接受三个参数并返回一个结果。创建 ternary_function 对象并调用 operator() 函数来执行操作。

C++ 函数的 STL ternary_function 用法

STL ternary_function 是一种接受三个参数的函数对象,用于对三个值执行操作并返回一个结果。它的签名如下:

template <class T1, class T2, class T3, class Result>
struct ternary_function {
    typedef Result result_type;
    Result operator()(T1, T2, T3) const;
};

用法:

立即学习“C++免费学习笔记(深入)”;

struct add_multiply {
    int operator()(int a, int b, int c) { return (a + b) * c; }
};

ternary_function<int, int, int, int> ternary = add_multiply();
int result = ternary(1, 2, 3); // result = 9

实战案例:

计算两个向量的内积。内积是向量每个元素相乘再求和的结果。

#include <iostream>
#include <vector>

using namespace std;

// 三元函数,用于计算向量的内积
struct dot_product {
    int operator()(int a, int b, int c) { return a * b * c; }
};

int main() {
    vector<int> v1 = {1, 2, 3};
    vector<int> v2 = {4, 5, 6};

    int sum = 0;
    for (size_t i = 0; i < v1.size(); ++i) {
        sum += ternary_function<int, int, int, int>(dot_product())(v1[i], v2[i], 1);
    }

    cout << "内积为: " << sum << endl;
    return 0;
}

以上就是C++ 函数的 STL ternary_function 怎么用?的详细内容,更多请关注php中文网其它相关文章!