STL非变易算法
非变易算法:原则上不会变更操作数据的算法。
[1] for_each:逐个容器元素,原型for_each(InputIter first, InputIter last, Function f)。
[2] find:顺序查找容器元素,原型InputIter find(InputIter first, InputIter last, constT &val, input_iterator_tag)。
[3] find_if:条件查找容器,原型InputIter find_if(InputIter first, InputIter last,Predicate pred, input_iterator_tag)。
如查找首个能被5整除的元素。
[4] adjacent_find:邻近查找容器元素,用于查找相等或满足条件的邻近元素。如查找邻近元素奇偶性同样的元素。
[5] find_first_of:范围查找容器元素。
[6] count:统计等于某值的容器元素容器个数。
[7] count_if:条件统计容器元素个数,统计迭代器区间上满足条件的元素个数。如统计年龄在20~30之间的学生个数。
[8] mismatch:元素不匹配查找,逐一比較找出两个序列的首个不匹配元素的位置。
返回值为pair对。
[9] equal:元素相等推断,逐一比較两个序列的元素是否相等(或是否满足推断条件)。
比如推断两个vector容器的元素绝对值是否相等。
[10] search:子序列搜索。用于在一个序列中搜索与还有一个序列匹配的子序列(或满足二元谓词推断条件)。实现:利用find函数查找第一个同样元素,接着比較其他元素是否同样。
[11] search_n:反复元素子序列搜索。用于搜索序列中是否有一系列元素值均为某个给定值的子序列(或满足谓词推断条件)。实现:利用find函数查找第一个同样元素,接着看同样元素个数是否等于count。
[12] find_end:最后一个子序列搜索,用于在一个序列中搜索出最后一个与还有一个序列匹配的子序列。实现:调用search算法找到满足条件的子序列,然后推断出其后再没有匹配的子序列,即为最后一个匹配的子序列。
STL非变易算法的更多相关文章
- stl非变易算法(二)
这里接着上篇stl非变易算法(一)进行总结.主要解析算法函数count.count_if.mismatch.equal.search.search_n以及find_end.给出算法函数的实现及測试用例 ...
- STL非变易算法 - STL算法
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1394600460.html 原创:ST ...
- 变易算法 - STL算法
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/mutating-algorithms.h ...
- stl变易算法(一)
C++ STL的变易算法是一组可以改动容器元素数据的模板函数,可进行序列容器的复制.交换.替换.填充.移除.旋转等.这些算法对迭代器有较高的要求.详细的迭代器类型随各个算法而定,或向前迭代器.或双向迭 ...
- stl变易算法(三)
本篇接着前面stl变易算法(一)和stl变易算法(二)继续讲述变易算法. 这里将介绍完余下的变易算法,主要有:填充fill.n次填充fill_n.随机生成元素generate.随机生成n个元素gene ...
- STL学习笔记--算法
关于STL算法需要注意的是: (1) 所有STL算法被设计用来处理一个或多个迭代器区间.第一个区间通常以起点和终点表示,至于其他区间,多数情况下只需提供起点即可,其终点可自动以第一区间的元素数推导出来 ...
- STL中的算法
STL中的所有算法(70个) 参考自:http://www.cppblog.com/mzty/archive/2007/03/14/19819.htmlhttp://hi.baidu.com/ding ...
- Java 理论与实践: 非阻塞算法简介——看吧,没有锁定!(转载)
简介: Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能.非阻塞算法属于并发算法,它们可以安全地派生它们的线程, ...
- Java 理论与实践: 非阻塞算法简介--转载
在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情.Java 语言中主要的同步手段就是synchronized 关键字(也称为内在锁),它强制实行互斥,确保 ...
随机推荐
- 企业面试之LeetCode刷题心得
谈起刷LeetCode的心得,想要先扯点别的,说实话我是比较自虐的人,大学时候本专业从来不好好上,一直觊觎着别人的专业,因为自己文科生,总觉得没有项技术在身出门找工作都没有底气,然后看什么炫学什么,简 ...
- C#通过post发送接收数据流
发送数据流方法 /// <summary> /// /// </summary> /// <param name="url">目标url< ...
- crontab 每月最后一天执行命令
没有什么是解决不了的事情,如果有,只是我们的知识不够精通,学得不扎实 需求:有一个程序,需要在每个月的最后一天执行 例如:每个月的最后一天早上8:00 打印 dede 到 /tmp/test.txt ...
- 获取windows版本号
原文:https://blog.csdn.net/justFWD/article/details/44856277 内容整理如下,点击跳至指定内容: manifest文件加上compatibility ...
- webstorm下开发微信小程序
- 2. 区分散列的 undef 值, 和手动赋值 0 不一样。1. 使用exists函数,散列中有这个键(必须是keys %hash 有这结果),则返回真值,
2. 123 my %vertical_alignment; 124 $vertical_alignment{"subscripting"} = 0; 125 unle ...
- B3. Cocurrent 线程的状态
[概述] 1). java.lang.Thread 类中定义了一个枚举 State, 定义了线程的六种状态:NEW.RUNNABLE.BLOCKED.WAITING.TIMED_WAITING.TER ...
- jQuery中Ajax事件beforesend及各参数含义1
jQuery中Ajax事件beforesend及各参数含义 转自:http://blog.sina.com.cn/s/blog_609f9fdd0100wprz.html Ajax会触发很多事件. 有 ...
- C#线程锁使用全功略
C#线程锁使用全功略 前两篇简单介绍了线程同步lock,Monitor,同步事件EventWaitHandler,互斥体Mutex的基本用法,在此基础上,我们对 它们用法进行比较,并给出什么时候需要锁 ...
- js页面跳转定位
A页面 <!DOCTYPE html> <html> <head> <meta name="viewport" content=" ...