当前位置: 首页 > news >正文

滨湖区建设局网站江苏网站建设推广

滨湖区建设局网站,江苏网站建设推广,哈尔滨网站建设招聘,从网络营销策划理论一、函数对象 1.函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象。 函数对象使用重载的()时,行为类似函数调用,也叫仿函数。 本质: 函数对象(仿函数)是一个类,不是一个函数。 2.函数对象…

一、函数对象

1.函数对象概念

概念:

        重载函数调用操作符的类,其对象常称为函数对象。

        函数对象使用重载的()时,行为类似函数调用,也叫仿函数。

本质:

        函数对象(仿函数)是一个类,不是一个函数。

2.函数对象使用

特点:

        函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值函数对象超出普通函数的概念,函数对象可以有自己的状态。

        函数对象可以作为参数传递。

#include <iostream>
#include <string>
using namespace std;
class MyAdd
{
public:int operator()(int v1, int v2){return v1 + v2;}
};
class MyPrint
{
public:MyPrint(){this->count = 0;}void operator()(string test){cout << test << endl;this->count++;}int count;
};
void test01()
{MyAdd myadd;cout << myadd(10, 10) << endl;
}
void test02()
{MyPrint myprint;myprint("hello world");myprint("hello world"); myprint("hello world");myprint("hello world");cout << myprint.count << endl;//调用次数
}
void doPrint(MyPrint& mp,string test)
{mp(test);
}
void test03()
{MyPrint myprint;doPrint(myprint,"hello world");
}
int main()
{test01();test02();test03();return 0;
}

二、谓词

1.谓词概念

概念:

        返回bool类型的仿函数称为谓词。

        如果operator()接受一个参数,那么叫做一元谓词如果operator()接受两个参数,那么叫做二元谓词。

bool operator()(int val)
{return val > 5;
}
bool operator()(int val1, int val2)
{return val1 > val2;
}

二、内建函数对象

1.算数仿函数

功能描述:

        实现四则运算

        其中negate是一元运算,其他都是二元运算

仿函数原型:

template<class T> T plus<T>

template<class T> T minus<T>

template<class T> T multiplies<T>

template<class T> T divides<T>

template<class T> T modulus<T>

template<class T> T negate<T>

//加法仿函数

//减法仿函数

//乘法仿函数

//除法仿函数

//取模仿函数

//取反仿函数

#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
class Greaterfive
{
public:bool operator()(int val1, int val2){return val1 > val2;}
};
void test01()
{vector<int>v;v.push_back(10);v.push_back(40);v.push_back(50);v.push_back(20);v.push_back(30);sort(v.begin(), v.end());for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;//从大到小sort(v.begin(), v.end(), Greaterfive());for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}
int main()
{test01();return 0;
}

2.关系仿函数

功能描述:

        实现关系对比

        仿函数原型:
template<class T> bool equal_to<T>                 //等于
template<class T> bool not_equal_to<T>          //不等于
template<class T> bool greater<T>                    //大于
template<class T> bool greater_equal<T>         //大于等于
template<class T> bool less<T>                         //小于

template<class T> bool less_equal<T>              //小于等于

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
class Greaterfive
{
public:bool operator()(int val1, int val2){return val1 > val2;}
};
void test01()
{vector<int>v;v.push_back(10);v.push_back(40);v.push_back(50);v.push_back(20);v.push_back(30);for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;//降序//sort(v.begin(), v.end(), Greaterfive());//greater<int>() 内建函数对象sort(v.begin(), v.end(), greater<int>());for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;}
int main()
{test01();return 0;
}

3.逻辑仿函数

功能描述:

        实现逻辑运算

函数原型:

template<class T> bool logical_and<T>         //逻辑与

template<class T> bool logical_or<T>            //逻辑或

template<class T> bool logical_not<T>          //逻辑非

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
void test01()
{vector<bool>v;v.push_back(true);v.push_back(false);v.push_back(false);v.push_back(true);for (vector<bool>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;//非vector<bool>v2;v2.resize(v.size());transform(v.begin(), v.end(), v2.begin(), logical_not<bool>());//取反操作for (vector<bool>::iterator it = v2.begin(); it != v2.end(); it++){cout << *it << " ";}cout << endl;
}
int main()
{test01();return 0;
}
http://www.hkea.cn/news/914520/

相关文章:

  • 模板建站杭州seo泽成
  • 济南网站建设公司川芎网络怎么注册自己的网址
  • linux下安装wordpress关键词优化排名查询
  • wordpress手机网站怎么做中央电视台一套广告价目表
  • 百家号如何给网站做推广推广方案是什么
  • 西安三网合一网站建设产品线上推广方案
  • 2023年免费b站入口百度网站优化
  • 响应式网站建设有利于seo网站发布与推广方案
  • 网页制作教程课件seo推广排名重要吗
  • 小规模纳税人企业所得税怎么征收广州seo招聘
  • 济南企业自助建站网络营销策划公司
  • iis 新建网站 要登录温州seo推广外包
  • 个人想做企业网站备案惠州seo代理商
  • 做公务员题的网站口红的推广软文
  • 福州网站建设 联系yanktcn 04上海百网优seo优化公司
  • 网站备案号如何获得网站建设营销推广
  • 物流网站开发公司西安 做网站
  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元
  • 做景观设施的网站网络营销推广要求
  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱