cb25a_c++_函数对象简介

cb25a_c++_函数对象简介
预定义的函数对象
https://blog.csdn.net/txwtech/article/details/104382505
negate<type>()
plus<type>()
minus<type>()
multilies<type>()
divides<type>()
modulus<type>()

equal_to<type>()
not_equal_to<type>()
less<type>()
greater<type>()
less_equal<type>()
greater_equal<type>()
logical_not<type>()
logical_and<type>()
logical_or<type>()

自定义的函数对象,智能型函数,比普通速度快。有自己的状态
cout << "用函数对象,printInt()自定义的" << endl;
for_each(ivec.begin(), ivec.end(), PrintInt());
容器和函数对象
算法和函数对象
for_each使用

/*cb25a_c++_函数对象简介
预定义的函数对象
https://blog.csdn.net/txwtech/article/details/104382505
negate<type>()
plus<type>()
minus<type>()
multilies<type>()
divides<type>()
modulus<type>()

equal_to<type>()
not_equal_to<type>()
less<type>()
greater<type>()
less_equal<type>()
greater_equal<type>()
logical_not<type>()
logical_and<type>()
logical_or<type>()

自定义的函数对象,智能型函数,比普通速度快。有自己的状态
cout << "用函数对象,printInt()自定义的" << endl;
    for_each(ivec.begin(), ivec.end(), PrintInt());
容器和函数对象
算法和函数对象
for_each使用
*/

#include <iostream>
#include <set>
#include <algorithm>
#include <vector>

using namespace std;

void print(int elem)
{
    cout << elem << ' ';
}
//函数对象,class必须要有operator()
class PrintInt
{
public:
    void operator()(int elem) const
    {
        cout << elem << ' ';
    }
};


int main()
{
    //set自动排序,红黑树,二叉树
    //set<int> aa;//省略后,默认的函数对象就是less<int>
    set<int, less<int>> b;//less<int>从小到大的顺序
    set<int, greater<int>> a;//从大到小
    a.insert(9);
    a.insert(3);
    a.insert(8);
    a.insert(1);
    a.insert(5);
    //for (set<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
    for(set<int,greater<int>>::iterator iter=a.begin();iter!=a.end();++iter)
        cout << *iter << endl;

    vector<int> ivec;
    for (int i = 2; i <= 9; ++i)
    {
        ivec.push_back(i);
    }
    cout << "用for_each算法" << endl;
    //for_each(ivec.begin(), ivec.end, 函数或函数对象);
    for_each(ivec.begin(), ivec.end(), print);
    cout << "用函数对象,printInt()自定义的" << endl;
    for_each(ivec.begin(), ivec.end(), PrintInt());//函数对象,自动调用operator()函数
    return 0;
}

 

原文链接: https://www.cnblogs.com/txwtech/p/12328141.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    cb25a_c++_函数对象简介

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/330170

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午5:27
下一篇 2023年3月1日 下午5:27

相关推荐