zoukankan      html  css  js  c++  java
  • cc23b_demo函数对象c++ 调用操作符的重载与函数对象//用模板定义一元谓词、代码示范

    //用模板定义一元谓词、

     1 #include <iostream>
     2 #include <vector>
     3 #include <algorithm>
     4 
     5 using namespace std;
     6 //用模板定义一元谓词、
     7 
     8 template<typename numberType>
     9 struct IsMultiple
    10 {
    11     numberType m_Divisor;
    12     IsMultiple(const numberType& divisor)
    13     {
    14         m_Divisor = divisor;
    15     }
    16     //bool operator()(const mumberType& element) const
    17     //严重性    代码    说明    项目    文件    行    禁止显示状态
    18         //错误    C4430    缺少类型说明符 - 假定为 int。注意 : C++ 不支持默认 int    cc23b_demo    d : \users\tt2018\documents\visual studio 2015\projects\cc23b_demo\cc23b_demo\cc23b_demo.cpp    16
    19     //numberType写成了mumberType
    20 
    21     bool operator()(const numberType& element) const//一元谓词
    22     {
    23         return((element%m_Divisor) == 0);
    24     }
    25 
    26 };
    27 int main()
    28 {
    29     vector<int> vecIntegers;
    30     for (int i = 25; i < 100; ++i)
    31         vecIntegers.push_back(i);
    32     //算法-写法1
    33     //IsMultiple<int> a(4);
    34     //vector<int>::iterator iElement;//迭代器是个指针
    35     //iElement=find_if(vecIntegers.begin(), vecIntegers.end(), a);
    36 
    37     //写法2,省一个变量
    38     
    39     vector<int>::iterator iElement;//迭代器是个指针
    40     iElement = find_if(vecIntegers.begin(), vecIntegers.end(), IsMultiple<int> (4));//IsMultiple<int> (4),省一个变量
    41     //
    42     if (iElement != vecIntegers.end())
    43     {
    44         cout << "第一个4的整数倍的数是: " << *iElement << endl;////迭代器是个指针
    45     }
    46     
    47     //a(4);
    48     cout << "hello1" << endl;
    49     getchar();
    50     return 0;
    51 }
    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    leetcode 890. 查找和替换模式 Python
    TensorFlow-GPU+cuda8+cudnn6+anaconda安装遇到的版本错误
    leetcode 921. 使括号有效的最少添加(Python)
    BFC概念详解及应用
    做一个网页阅读百分比指示器
    margin-bottom和vertical-align的区别
    MD5算法
    Array.prototype.slice.call()方法详解
    String stringbuffer StringBuilder
    价值观
  • 原文地址:https://www.cnblogs.com/txwtech/p/12108659.html
Copyright © 2011-2022 走看看