C++ Primer 5th笔记(10)chapter10 泛型算法 :谓词
1. 定义
谓词(predicate)是一个可调用的表达式,返回结果是一个能用作条件的值。
- 用于一个对象或一个表达式,如果可以对其使用调用运算符,则称为可调用的;
- 可调用的对象有:函数、函数指针、重载函数调用运算符的类和lambda表达式。
2. n元谓词
几元谓词接受几元参数。 谓词分为:一元谓词和二元谓词。
bool isShorter(const string &s1, const string &s2)
{return s1.size() < s2.size();
}
eg. 使用谓词的排序版本
vector<string> words = {"the", "quick", "red", "fox","red", "the","slow"};
cout << "Before: ";
for(auto iter = words.begin();iter != words.end(); ++iter){cout << *iter << " ";
}
cout << endl;
sort(words.begin(),words.end(), isShorter); //使用谓词进行排序
cout << "After sort: ";
for(const auto &s: words){cout << s << " ";
}
cout << endl;
输出结果为:
Before: the quick red fox red the slow
After sort: the red fox red the slow quick
3.应用举例.
标准库会为谓词算法重新起个名字以表示跟原来不一样。
eg
find (beg, end, val); // find first instance of val in the input rangefind_if (beg, end, pred); // find first instance for which pred is truereverse (beg, end);reverse_copy (beg, end, dest);
C++ Primer 5th笔记(10)chapter10 泛型算法 :谓词相关推荐
- C++ Primer 学习笔记 第十章 泛型算法
C++ Primer 学习笔记 第十章 泛型算法 336 find函数 #include <iostream> #include <vector> #include <s ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 :泛型算法结构
名称 定义 输入迭代器 只读,不写:单遍扫描,只能递增 输出迭代器 只写,不读:单遍扫描,只能递增 前向迭代器 可读写,多遍扫描,只能递增 双向迭代器 可读写,多遍扫描,可递增递减 随机访问迭代器 可 ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器
迭代器类别 名称 定义 插入迭代器 这些迭代器被绑定到一个容器上,可用来向容器插入元素 流迭代器 这些迭代器被绑定到输入或输出流上,可用来遍历所有关联的IO流 反向迭代器 这些迭代器向后而不是向前移动 ...
- C++primer第十章 泛型算法 10.4 再探迭代器 10.5 泛型算法结构
除了为每个容器定义的迭代器之外,标准库在头文件iterator中还定义了额外几种迭代器.这些迭代器包括以下几种. 插入迭代器(insert iterator):这些迭代器被绑定到一个容器上,可用来向容 ...
- C++ primer 第10章 泛型算法
文章目录 概述 find count 初识泛型算法 只读算法 只读算法accumulate 只读算法equal 写容器元素的算法 算法fill 算法fill_n back_inserter 算法cop ...
- C++ Primer 5th笔记(chap 14 重载运算和类型转换)函数调用运算符
1. 定义 如果类定义了调用运算符(重载了函数调用运算符),则该类的对象被称作函数对象(function object),可以像使用函数一样使用该类的对象, eg. struct absInt{int ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 :write
1. fill: 对给定区间全部赋予某值(algorithm.h) 将指定范围内的每个元素都设定为给定的值.如果输入范围有效,则可以安全写入.这个算法只会对输入范围内已存在的元素进行写入操作. tem ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 : read
标准库提供一组不依赖特定的容器类型的共性算法 指定迭代器范围, eg. [begin, end)这种左闭包 3种类型: 只读.写.sort 1. find 查询 template<class I ...
- C++ Primer 5th笔记(10)chapter10 泛型算法 :bind
1. 定义 一个函数适配器,接受一个函数调用,增加或更改参数传递给另外一个函数调用. 比如 auto newCallable=bind(callable, arg_list); newCallable ...
最新文章
- VBS脚本和HTML DOM自动操作网页
- 内部类(闭包与回调)
- 亚马逊aws 服务器删除_AWS推出Apache Airflow全托管工作流MWAA
- HTML、CSS规范
- 使用async,await关键字进行API Access Token的获取
- Unity3D 访问Access数据库
- 从0到1写RT-Thread内核——临界段的保护
- 我写了10年博客,却被人说“不火”?我是这样怼回去的?
- Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)C. Voltage Keepsake
- 使用Keras框架进行单变量时间序列预测——以上证指数为例
- Mysql中有哪些数据类型(建议收藏)
- ckdeitor的使用方法
- 卷积的定义,知乎上有个很有名的段子:
- Bolg-First
- AutoCAD文档01——安装教程
- 啥是甘特图?用思维导图制作甘特图的方法
- Qt 添加 QtNetwork 库文件(包括vs中和qt中)
- Nginx是什么,为什么使用Nginx
- 写字机器人开发之:python opencv linux下合作操作摄像头
- 常见的随机变量分布律/概率密度、期望、方差以及特征函数
热门文章
- mac mysql使用_在Mac中安装和使用MySQL
- php url传递参数_python+Requests接口自动化测试之传递 URL 参数
- css字体的字型,CSS的字体、字型控制_css
- 网络工程中的割接是什么意思?
- mysql严格模式 报错_代码一上传服务器就报错-尝试开启 MySQL 严格模式
- Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略
- Python之pyecharts:利用pyecharts(十五种风格)绘制2018年~2020年中国互联网Top巨头近三年市值(美元)柱状图
- DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构FineTuning
- OS_CORE.C(8)
- freemarker写入word【未完,待续】