标签:
#include<iostream> #include<string> #include<vector> using namespace std; /* 这个类很简单,它定义了一个操作:函数调用操作符,该操作符有一个形参 并返回形参的绝对值。 函数调用操作符必须声明为成员函数。一个类可以定义函数调 用操作符的多个版本,由形参的数目或类型加以区别 */ struct absInt { int operator()(int val) { return val<0 ? -val:val; } }; /*定义了调用操作符的类,其对象常称为函数对象,即它们是行为类似函数的对象*/ /*14.8.1. 将函数对象用于标准库算法*/ /*我们的实现有个严重问题:它将 6 这个数字固化在 GT6 函数的定义中。 count_if 算法运行只用一个形参且返回 bool 的函数。理想情况下,应传递 string 和我们想要的长度进行测试。通过该方式,可以使用同一代码对不同长 度的字符串进行计数。 通过将 GT6 定义为带函数调用成员类,可以获得所需的灵活性。将这个类命名 为 GT_cls 以区别于函数*/ class GT_cls { private: vector<string>::size_type bood; public: GT_cls(size_t val=0):bood(val){} bool operator()(string &str) { return str.size()>bood; } }; int main() { system("pause"); return 1; }
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4397653.html