摘要: 一、背景引入 如果我有一个函数f和一个对象x,我希望在x上调用f,而且我在x的成员函数之外。C++给我三种不同的语法来实现这个调用: // 语法#1:当f是一个非成员函数 f(x); // 语法#2:当f是一个成员函数 ,而且x是一个对象或一个对象的引用 x.f(); // 语法#3:当f是一个成员 阅读全文
posted @ 2020-12-03 16:26 Mr-xxx 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 简单来将,仿函数(functor)就是一个重载了"()"运算符的struct或class,利用对象支持operator()的特性,来达到模拟函数调用效果的技术。 我们平时对一个集合类遍历的时候,例如vector,是这样做的: 1 for(vector<int>::const_iterator ite 阅读全文
posted @ 2020-12-03 15:35 Mr-xxx 阅读(324) 评论(0) 推荐(0) 编辑
摘要: not1是构造一个与谓词结果相反的一元函数对象,not2是构造一个与谓词结果相反的二元函数对象。 not1: 1 // not1 example 2 #include <iostream> // std::cout 3 #include <functional> // std::not1 4 #in 阅读全文
posted @ 2020-12-03 11:16 Mr-xxx 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: compose1和compose2均是用于参数合成 比如: f(x)=3*x,g(y)=y+2,那么compose1(f(x),g(y))=(y+2)*3 g1(x)=3*x,g2(x)=2*x,h(x)=a+b,那么compose2(h(x),g1(x),g2(x))=3*x+2*x 大体效果就是 阅读全文
posted @ 2020-12-03 11:04 Mr-xxx 阅读(447) 评论(0) 推荐(0) 编辑