• 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
  • 相关阅读:
    Eclipse Alt + / 无提示
    洛谷 P1101 单词方阵
    力扣题解 7th 整数反转
    力扣题解 344th 反转字符串
    力扣题解 48th 旋转图像
    力扣题解 36th 有效的数独
    力扣题解 1th 两数之和
    力扣题解 283th 移动零
    力扣题解 66th 加一
    力扣题解 350th 两个数组的交集 II
  • 原文地址:https://www.cnblogs.com/txwtech/p/12108659.html
Copyright © 2020-2023  润新知