NDK 之C++之算法algorithm

255 阅读1分钟

算法algorithm

C++ 预定义函数(C++ 内置函数)

plus,minus,multiplies,divides,modulus ...

使用

  • C++ 内置函数
#include <iostream>
#include <algorithm> // 算法包
using namespace std;

int main() {
    plus<int> add_func;
    int r = add_func(1, 1);
    cout << r << endl;

    plus<string> add_func2;
    string r2 = add_func2("AAAA", "BBB");
    cout << r2 << endl;

    plus<float> add_func3;
    float r3 = add_func3(4354.45f, 34.3f);
    cout << r3 << endl;
    return 0;
}
  • 手写预定义函数
#include <iostream>
#include <algorithm> // 算法包

using namespace std;

template<typename Arg1, typename Arg2, typename Result>
struct binary_function {
    /// 第一个参数的类型
    typedef Arg1 first_argument_type;

    /// 第二个参数的类型
    typedef Arg2 second_argument_type;

    /// @c result_type是返回类型
    typedef Result result_type;
};

//  对象 + 对象
// 1.运算符重载
// 2.对象+对象 自己去写仿函数
/*: public binary_function<T, T, T>*/
template<typename T>
struct plus_d {
    T operator()(const T &x, const T &y) {
        return x + y;
    }
};

int main() {
    plus_d<int> add_func;
    int r = add_func(1, 1);
    cout << r << endl;

    plus_d<string> add_func2;
    string r2 = add_func2("AAAA", "BBB");
    cout << r2 << endl;

    plus_d<float> add_func3;
    float r3 = add_func3(4354.45f, 34.3f);
    cout << r3 << endl;

    return 0;
}