C++ 11 特性:<algorithm>中的算法
来源:互联网 发布:ui和美工哪个工资高 编辑:程序博客网 时间:2024/06/03 22:59
参考文献:《C++ Primer》
一、algorithm介绍
algorithm译为算法,提供了大量基于迭代器的非成员模版函数。本文将尽可能全面的讲解algorithm头文件下的算法以及使用。
二、说明
- ben和end表示元素范围的迭代器
- ben2表示第二个输入序列开始位置的迭代器,end2表示第二个输入序列的末尾位置。若没有end2的话,则第一个输入序列的长度与第二个输入序列的长度一致。
- dest表示目的序列的迭代器。对于给定输入序列,算法需要生成多少元素,目的序列必须保证能保存同样多的元素。
- unaryPred和binaryPred是一元与二元谓词。
- unaryOp和binaryOp是可调用对象,可分别使用来自输入序列的一个和两个实参来调用。
三、算法
1.查找对象的算法
1.1 简单查找
find 返回一个迭代器,指向输入序列中第一个等于val的元素。
find_if 返回一个迭代器,指向输入序列中第一个满足unaryPred的元素。
find_if_not 返回一个迭代器,指向输入序列中第一个不满足unaryPred的元素。
count 返回一个计数器,指出val出现的次数。
count_if 返回一个计数器,指出满足unaryPred的元素的个数。
all_of 返回一个bool值,unaryPred对所有元素都满足,则返回true。如果序列为空也返回true,否则返回false。
any_of 返回一个bool值,unaryPred对任意一个元素满足,则返回true,否则返回false。如果序列为空则返回false。
none_of 返回一个bool值,unaryPred对所有元素都不满足,则返回true。如果序列为空也返回true,否则返回false。
1.2 查找重复值
adjacent_find 返回一个迭代器,指向序列中第一对相邻重复的元素,如果序列中没有相邻重复的元素,则返回end。
search_n 返回一个迭代器,从此位置开始,有count个相等元素。如果序列中不存在这样的子序列,则返回end。
1.3 查找子序列
search 返回一个迭代器,指向第二个子序列在第一个序列中第一次出现的位置,如果未找到匹配的子序列,则返回end1。
find_first_of 返回一个迭代器,指向第二个序列中任意元素在第一个序列中第一次出现的位置,如果未找到匹配的子序列,则返回end1。
find_end 返回一个迭代器,指向第二个子序列在第一个序列中最后一次出现的位置,如果未找到匹配的子序列,则返回end1。
2. 其他只读算法
for_each 对输入序列中的每个元素应用可调用对象unaryOp。
mismatch 比较两个序列中的元素,返回一个迭代器的pair,表示两个序列中第一个不匹配的元素。如果所有元素都匹配,则返回的pair中第一个迭代器为end1,第二个迭代器指向beg2中偏移量等于第一个序列长度的位置。
equal 返回一个bool值,如果两个序列完全相同则返回true。
如有不对的地方欢迎大家指正交流 ,持续更新中
- C++ 11 特性:<algorithm>中的算法
- C++中的算法algorithm
- #include<algorithm>中的sort算法
- Algorithm 头文件中的算法
- (C#)排序算法 Sort Algorithm
- 哈夫曼算法(huffman algorithm C)
- [C++]Algorithm中的函数简介
- 【STL】<algorithm><numeric><functional> 中的常用算法
- objective-c中的特性
- objective-c中的特性
- STL algorithm算法count_if(11)
- Objective-c中的C特性
- Algorithm(算法
- 算法(algorithm):
- Algorithm算法
- [C++STL]算法<algorithm>中各种算法解析
- [C++STL]算法<algorithm>中各种算法解析
- C语言算法的特性
- Android Framework学习笔记 -- client与AudioFlinger的数据交换
- QtCreator:during startup program exited with code 0xc0000139 QT设置环境变量
- c语言基础01
- volatile变量在多线程同步时运用的优点: 1、锁一次只允许一个线程访问值,volatile 允许多个线程执行读操作,因此当使用 volatile 保证读代码路径时,要比使用锁执行全部代码路径获得
- 批处理常用特殊符号简介
- C++ 11 特性:<algorithm>中的算法
- 32位与64位系统下不同数据类型的大小
- [c++ 二叉树创建与遍历] 数据结构实验之二叉树三:统计叶子数
- 使用opencv 进行图像去雾
- Day 3:Android基础UI界面设计
- C和指针之指针数组和指向数组的指针
- Linuv下一些问题的解决方法
- 小鑫数数儿
- JS 格林威治时间格式(GMT)与普通时间格式的互相转换