1

accumulate(b,e,T) 累和(基础和为T)

注意T的类型必须和序列中元素类型相同,如double序列后面的T就必须是0.0,如果是0就会把序列中的数当成int进行求和

2

count(b,e,T) 计数,查找[b,e)中T出现的次数

3

equal(b1,e1,b2) 确定是否相同,[b1,e1)为序列1,b2为序列2开头

默认b2序列长度比b1到e1要长

4

fill(b,e,T) 将[b,e)元素全部替换为T

fill_n(b,N,T) 将b开始的N个元素替换为T

默认从b开始还有不小于N个元素,否则出错!

5

copy(b1,e1,b2) 将b1到e1的元素复制到b2开始序列中去,返回b2复制的最后一个元素的下一个位置迭代器

注意b2开始也要有足够长的数据,否则出错!

6

replace(b,e,T1,T2) 将b到e区间内等于T1的值都改为T2,改变原序列

replace_copy(b1,e1,b2,T1,T2) 相比replace不改变原序列,而是在b2后复制b1到e1并做相应替换

7

sort(b,e) 排序

auto iter=unique(b,e) 把出现超过一次的放到序列末尾,返回冗余尾子串的开头

erase(iter,e) 删除尾部的冗余序列,完成去重

sort可以加谓词参数以使用自定义规则进行排序

sort(b,e,F)

stable_sort(b,e) 稳定排序,相同元素保留原先顺序不变

8

for_each(b,e,F) 对于b到e每个元素调用F函数(如果F的参数是引用就可以改动b到e的值),F可以是lambda表达式

transform(b1,e1,b2,F) 对于b1到e1每个元素都用F转换并顺序存入b2开始的位置 (b2可以等于b1,此时函数效果相当于上面的for_each(b1,e1,F)了),F可以是lambda表达式

lambda匿名表达式:

[捕获列表] (参数) ->return type {函数体}

其中[捕获列表]和{函数体}必须有,其他可以省略。

捕获列表一定是lambda表达式存在的函数中的局部非static变量或者所在函数的形参

因为lambda表达式可以直接使用局部static、全局、函数之外的名字。

显式捕获:捕获的局部非static变量写在参数()里,加&就代表捕获引用,否则捕获的是拷贝。

隐式捕获:(=)或(&) ,即告诉编译器函数体里不知道哪来的变量就当做是母函数里的。

= 代表函数体中的未知变量是从母函数捕获的拷贝

& 代表函数体中的未知变量是从母函数捕获的引用

C++泛型算法总结的更多相关文章

  1. C++ 泛型算法

    <C++ Primer 4th>读书笔记 标准容器(the standard container)定义了很少的操作.标准库并没有为每种容器类型都定义实现这些操作的成员函数,而是定义了一组泛 ...

  2. C++的那些事:容器和泛型算法

    一.顺序容器 1,标准库定义了3种类型的顺序容器:vector.list和deque.它们的差别主要在于访问元素的方式,以及添加或删除元素相关操作运算代价.标准库还提供了三种容器适配器:stack.q ...

  3. C++ Primer : 第十章 : 泛型算法 之 只读、写和排序算法

    大多数算法都定义在<algorithm>头文件里,而标准库还在头文件<numeric>里定义了一组数值泛型算法,比如accumulate. ●  find算法,算法接受一对迭代 ...

  4. Chapter10:泛型算法

    泛型算法的基础是迭代器. 迭代器令算法不依赖于容器,但是算法依赖于元素类型的操作.也即:算法永远不会执行容器的操作. 那么,如果想向容器中添加元素或者执行其他的一些操作呢?标准库提供了插入迭代器来完成 ...

  5. 【STL】帮你复习STL泛型算法 一

    STL泛型算法 #include <iostream> #include <vector> #include <algorithm> #include <it ...

  6. C++ Primer 5th 第10章 泛型算法

    练习10.1:头文件algorithm中定义了一个名为count的函数,它类似find,接受一对迭代器和一个值作为参数.count返回给定值在序列中出现的次数.编写程序,读取int序列存入vector ...

  7. C++标准库之泛型算法

    本文中算法都是指泛型算法. 基本要点: 1)算法使用迭代器进行操作. 2)不依赖容器,但容器希望使用算法,就必须提供接口. 3)通用算法永远不会执行容器操作.操作仅指:更改容器大小的操作.但,容器内部 ...

  8. C++ Primer 读书笔记:第11章 泛型算法

    第11章 泛型算法 1.概述 泛型算法依赖于迭代器,而不是依赖容器,需要指定作用的区间,即[开始,结束),表示的区间,如上所示 此外还需要元素是可比的,如果元素本身是不可比的,那么可以自己定义比较函数 ...

  9. STL的一些泛型算法

    源地址:http://blog.csdn.net/byijie/article/details/8142859 从福州大学资料里摘下来的我现在能理解的泛型算法 algorithm min(a,b) 返 ...

  10. 【足迹C++primer】30、概要(泛型算法)

    概要(泛型算法) 大多数算法的头文件中定义algorithm在. 标准库也是第一个文件numeric它定义了一套通用算法. #include<iostream> #include<n ...

随机推荐

  1. (三)运用Python模块和包

    1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...

  2. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 Banana

    签到题 50的规模,随便搞搞都能过,用stl的string的搜索直接做了 #include <bits/stdc++.h> using namespace std; typedef lon ...

  3. Python3标准库:enum枚举

    1. enum枚举 枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的.不可变的.在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的. 1.1 创建枚举 可以使用class语法派生Enu ...

  4. python3爬取淘宝商品(失效)

    最近有人反映淘宝的搜索功能要登录才能用,原先的直接爬取的方法挂了.稍微把之前的代码修改了一下,登录采用最简单的复制cookie来解决. 顺便说一下,这只是根据搜索的的索引界面获取的信息,并未深入的获取 ...

  5. 如何在Windows上开启Ping或者禁止PING

    方法1:命令行模式 进入服务器后 点击 开始——运行 输入命令: netsh firewall set icmpsetting 8 这样就可以在外部ping到服务器了 非常简单实用! 同样道理,如果想 ...

  6. Codeforce 515A - Drazil and Date

    Someday, Drazil wanted to go on date with Varda. Drazil and Varda live on Cartesian plane. Drazil's ...

  7. linux命令解压压缩rar文件的详细步骤

    参考文件:https://www.cnblogs.com/qinglin/p/9007939.html

  8. Python Turtle模块的简单应用

    时钟 import turtle as t import datetime as dt #画出背景 game = t.Screen() game.bgcolor("white") ...

  9. 在cc.EventListener.TOUCH_ONE_BY_ONE事件中判断拖动物离哪边近飞向那边

    需将拖动物坐标和要飞向物坐标转化为整个layer的坐标,因为人们判断远近是根据整个layer来看的.

  10. 采用PHP实现”服务器推”技术的聊天室

      传统的B/S结构的应用程序,都是采用”客户端拉”结束来实现客户端和服务器端的数据交换. 本文将通过结合Ticks(可以参看我的另外一篇文章:关于PHP你可能不知道的-PHP的事件驱动化设计),来实 ...