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

网站建设发帖论坛社区换服务器后网站首页不收录

网站建设发帖论坛社区,换服务器后网站首页不收录,dw制作网页的作业免费,网站建设公司排名1 函数对象 1.1 函数对象概念 概念#xff1a; 重载函数调用操作符的类#xff0c;其对象常称为函数对象函数对象使用重载的()时#xff0c;行为类似函数调用#xff0c;也叫仿函数 本质#xff1a; 函数对象(仿函数)是一个类#xff0c;不是一个函数 1.2 函数对象…1 函数对象 1.1 函数对象概念 概念 重载函数调用操作符的类其对象常称为函数对象函数对象使用重载的()时行为类似函数调用也叫仿函数 本质 函数对象(仿函数)是一个类不是一个函数 1.2 函数对象使用 特点 函数对象在使用时可以像普通函数那样调用, 可以有参数可以有返回值函数对象超出普通函数的概念函数对象可以有自己的状态函数对象可以作为参数传递 示例: #include string//1、函数对象在使用时可以像普通函数那样调用, 可以有参数可以有返回值 class MyAdd { public :int operator()(int v1,int v2){return v1 v2;} };void test01() {MyAdd myAdd;cout myAdd(10, 10) endl; }//2、函数对象可以有自己的状态 class MyPrint { public:MyPrint(){count 0;}void operator()(string test){cout test endl;count; //统计使用次数}int count; //内部自己的状态 }; void test02() {MyPrint myPrint;myPrint(hello world);myPrint(hello world);myPrint(hello world);cout myPrint调用次数为 myPrint.count endl; }//3、函数对象可以作为参数传递 void doPrint(MyPrint mp , string test) {mp(test); }void test03() {MyPrint myPrint;doPrint(myPrint, Hello C); }int main() {//test01();//test02();test03();system(pause);return 0; }总结 仿函数写法非常灵活可以作为参数进行传递。 2 谓词 2.1 谓词概念 概念 返回bool类型的仿函数称为谓词如果operator()接受一个参数那么叫做一元谓词如果operator()接受两个参数那么叫做二元谓词 2.2 一元谓词 示例 #include vector #include algorithm//1.一元谓词 struct GreaterFive{bool operator()(int val) {return val 5;} };void test01() {vectorint v;for (int i 0; i 10; i){v.push_back(i);}vectorint::iterator it find_if(v.begin(), v.end(), GreaterFive());if (it v.end()) {cout 没找到! endl;}else {cout 找到: *it endl;}}int main() {test01();system(pause);return 0; }总结参数只有一个的谓词称为一元谓词 2.3 二元谓词 示例 #include vector #include algorithm //二元谓词 class MyCompare { public:bool operator()(int num1, int num2){return num1 num2;} };void test01() {vectorint v;v.push_back(10);v.push_back(40);v.push_back(20);v.push_back(30);v.push_back(50);//默认从小到大sort(v.begin(), v.end());for (vectorint::iterator it v.begin(); it ! v.end(); it){cout *it ;}cout endl;cout ---------------------------- endl;//使用函数对象改变算法策略排序从大到小sort(v.begin(), v.end(), MyCompare());for (vectorint::iterator it v.begin(); it ! v.end(); it){cout *it ;}cout endl; }int main() {test01();system(pause);return 0; }总结参数只有两个的谓词称为二元谓词 3 内建函数对象 3.1 内建函数对象意义 概念 STL内建了一些函数对象 分类: 算术仿函数 关系仿函数 逻辑仿函数 用法 这些仿函数所产生的对象用法和一般函数完全相同使用内建函数对象需要引入头文件 #includefunctional 3.2 算术仿函数 功能描述 实现四则运算其中negate是一元运算其他都是二元运算 仿函数原型 templateclass T T plusT //加法仿函数templateclass T T minusT //减法仿函数templateclass T T multipliesT //乘法仿函数templateclass T T dividesT //除法仿函数templateclass T T modulusT //取模仿函数templateclass T T negateT //取反仿函数 示例 #include functional //negate void test01() {negateint n;cout n(50) endl; }//plus void test02() {plusint p;cout p(10, 20) endl; }int main() {test01();test02();system(pause);return 0; }总结使用内建函数对象时需要引入头文件 #include functional 3.3 关系仿函数 功能描述 实现关系对比 仿函数原型 templateclass T bool equal_toT //等于templateclass T bool not_equal_toT //不等于templateclass T bool greaterT //大于templateclass T bool greater_equalT //大于等于templateclass T bool lessT //小于templateclass T bool less_equalT //小于等于 示例 #include functional #include vector #include algorithmclass MyCompare { public:bool operator()(int v1,int v2){return v1 v2;} }; void test01() {vectorint v;v.push_back(10);v.push_back(30);v.push_back(50);v.push_back(40);v.push_back(20);for (vectorint::iterator it v.begin(); it ! v.end(); it) {cout *it ;}cout endl;//自己实现仿函数//sort(v.begin(), v.end(), MyCompare());//STL内建仿函数 大于仿函数sort(v.begin(), v.end(), greaterint());for (vectorint::iterator it v.begin(); it ! v.end(); it) {cout *it ;}cout endl; }int main() {test01();system(pause);return 0; }总结关系仿函数中最常用的就是greater大于 3.4 逻辑仿函数 功能描述 实现逻辑运算 函数原型 templateclass T bool logical_andT //逻辑与templateclass T bool logical_orT //逻辑或templateclass T bool logical_notT //逻辑非 示例 #include vector #include functional #include algorithm void test01() {vectorbool v;v.push_back(true);v.push_back(false);v.push_back(true);v.push_back(false);for (vectorbool::iterator it v.begin();it! v.end();it){cout *it ;}cout endl;//逻辑非 将v容器搬运到v2中并执行逻辑非运算vectorbool v2;v2.resize(v.size());transform(v.begin(), v.end(), v2.begin(), logical_notbool());for (vectorbool::iterator it v2.begin(); it ! v2.end(); it){cout *it ;}cout endl; }int main() {test01();system(pause);return 0; }总结逻辑仿函数实际应用较少了解即可
http://www.zqtcl.cn/news/112561/

相关文章:

  • 急求聊城网站建设网站服务器管理系统
  • 做网站需要什么许可证商场设计效果图
  • html网页制作视频windows优化大师有哪些功能
  • 国外建站主机帝国手机网站cms系统
  • 响应式网站建设哪家好网站空间支付方式
  • 腾讯广告建站工具贵州企业网站建设价格
  • 最新的网站建设架构wordpress管理员头像
  • 手机网站模版化工网站建设公司
  • 网站建设 会计分录北京网站建设主页
  • 北京市建设监理协会网站网站一般多少钱
  • 做网站零成本网站如何做成app
  • 建小网站多少钱深圳网站备案注销
  • 海淘网站是谁做的为该网站做自适应
  • php网站开发自学如何做x响应式网站
  • 吴忠网站建设公司随州网站建设优化推广渠道
  • dedecms 招聘网站网站建设市场调研报告
  • 建小网站多少钱做会计网站的流程
  • 为一个村做网站优秀文创产品设计案例及分析
  • 山东专业网站建设公司哪家好网站开发的薪资是多少
  • 无极在线网站播放烟台注册公司
  • 网站源文件修改科技网站欣赏
  • 关于h5的网站目录 首页 wordpress
  • 包头网站建设推广手机网站开发介绍
  • 网站推广设计用那种语言做网站比较好
  • 手机品牌网站如何做好网站内更新
  • 订餐网站模板下载毕业设计动漫网页设计
  • 网站阵地建设管理办法移动端网页界面设计
  • 网站和做游戏重庆市建设工程信息网安全监督特种人员
  • 沈阳网站建设活动方案部分网站打不开的原因
  • 网站维护界面设计做的网站一直刷新