zoukankan      html  css  js  c++  java
  • 理解函数对象的函数适配器

    // leran.cpp : 定义控制台应用程序的入口点。
     
     
    #include "stdafx.h"
    #include<iostream>
    #include <vector>
    #include<algorithm>
    #include<functional>
    using namespace std;
    class GT_cls
    {
    public:
    GT_cls(size_t val = 0):bound(val){}
    bool operator()(const string &s)
    {
    return  s.size()>=bound;
    }
    private:
    std::string::size_type bound;
    };
     
    int _tmain(int argc, _TCHAR* argv[])
    {
     
     
      int a[] = {1, 2, 3, 4, 5, 6, 7, 8};
      vector<int> ivec(a, a+8);
      size_t n1 = count_if(ivec.begin(), ivec.end(), bind2nd(less_equal<int>(), 5));
      cout << "n1:" << n1 << endl;
      //size_t n = count_if(ivec.begin(), ivec.end(), not1(bind2nd(less_equal<int>(), 5)));
      size_t n2 = count_if(ivec.begin(), ivec.end(), bind1st(less_equal<int>(), 5));
      cout << "n2:" << n2 << endl;
      less_equal<int> le;
      size_t n3 = le(5, 8);
      cout << "n3:" << n3 << endl;
     
      vector<int>::iterator ite = ivec.begin();
     
      while((ite = find_if(ite, ivec.end(), bind2nd(greater<int>(), 5))) != ivec.end())
      {
        cout << *ite << " ";
        ite++;
      }
      cout << endl;
     
      
      sort(ivec.begin(), ivec.end(), greater<int>());
     
      vector<int>::iterator ites = ivec.begin();
      while(ites!= ivec.end())
      {
        cout << *ites << " ";
        ites++;
      }
     
     
    }
     
    输出结果:
    n1:5
    n2:4
    n3:1
    6 7 8
    8 7 6 5 4 3 2 1 
  • 相关阅读:
    Pandas索引和选择数据
    Pandas选项和自定义
    Pandas字符串和文本数据
    Pandas排序
    Pandas迭代
    Pandas重建索引
    Pandas函数应用
    Pandas描述性统计
    Pandas基本功能
    nyoj 234 吃土豆
  • 原文地址:https://www.cnblogs.com/crazycodehzp/p/3359021.html
Copyright © 2011-2022 走看看