函数内建对象

shienh 2020年02月09日 258次浏览

STL内建了一些函数对象。使用内建函数对象,需要引入头文件#include ,以下列举了内建的函数对象negate(取反),plus(加法),greater(从大到小排序)的使用方法

#include <iostream>
#include <functional>
#include <vector>
#include <algorithm>

using namespace std;
int main(int argc, char *argv[])
{
    //取反
    negate<int> n;
    //-10
    cout<<n(10)<<endl;

    plus<int> p;
    //3
    cout<<p(1,2)<<endl<<endl;

    vector<int> v;
    v.push_back(10);
    v.push_back(30);
    v.push_back(50);
    v.push_back(20);
    v.push_back(40);

    // 使用内建的函数对象进行从大到小的排序
    sort(v.begin(),v.end(),greater<int>());
    for_each(v.begin(),v.end(),[](int val){cout<<val<<" ";});
    cout<<endl;
    return 0;
}