美文网首页
10泛型算法

10泛型算法

作者: 龟龟51 | 来源:发表于2017-10-26 10:54 被阅读0次

10泛型算法

10.1概述

泛型算法不能改变容器的大小,依赖于元素类型的操作。

10.2初识泛型算法

10.2.1只读算法

find

10.2.2写容器元素的算法

fill

back_inserter

10.2.3重排容器元素的算法

sort, unique

10.3定制操作

10.3.1想算法传递函数

谓词:是一个可调用的表达式,其返回结果是一个能用作条件的值(即返回作为条件去判断)。

一元谓词接受单一参数,二元谓词两个。接受谓词参数的算法元素类型必须能转换成谓词的参数类型。

10.3.2lambda

可调用类型有:函数,函数指针,lambda表达式,重载了函数调用运算符的类。

lambda传递参数

Lambda不能有默认参数,调用的实参数目永远与形参数目相等。

使用捕获列表

10.3.3lambda捕获和返回

值捕获

值捕获的前提是变量可以拷贝,与参数不同,被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝。

引用捕获

必须保证被引用的对象在lambda执行的时候是存在的。

隐式捕获

编译器可以推断捕获列表,但要在列表中加&或=,&表引用,=表值。

可以混合使用隐式捕获和显式捕获。但第一个元素必须是隐式的。

可变lambda

希望改变一个捕获的值,加关键字mutable

指定lambda的返回类型

必须尾置返回类型

10.3.4参数绑定bind

头文件functional, 命名空间在std::placeholders

例:f(a, b, c, d, e);

Auto g=bind(f, a, b, _2, d, _1);

g(X, Y);等价于f(a, b, Y, d, X);

10.4再探迭代器

10.4.1插入迭代器

10.4.2iostream迭代器

Iostream_iterator操作

Ostream_iterator操作

10.4.3反向迭代器

rbegin,rend, crbegin, crend

除了forward_list外其他容器都支持。

反向迭代器与正常的顺序是相反的,也有++,--但与正常相反

用base()获得正常的迭代器。

10.5泛型算法结构

10.5.1  5类迭代器

10.5.2算法形参模式

Dest表示算法可以写入目的位置的迭代器

10.5.3算法命名规范

10.6特定容器算法

相关文章

  • 10泛型算法

    10泛型算法 10.1概述 泛型算法不能改变容器的大小,依赖于元素类型的操作。 10.2初识泛型算法 10.2.1...

  • Geekband-third week of part3

    1.泛型算法之变易算法 2.泛型算法之排序 3.泛型算法之泛型数值算法 4.内存分配器

  • c++primer笔记----泛型算法

    大多数算法在 。泛型算法运行在迭代器之上 数组利用指针实现泛型算法 只读算法:find、count、accumul...

  • c++学习记录8(GeekBand)

    这周的课讲了将泛型算法。现在将泛型算法收集下,备用。 (1)泛型算法用迭代器来解决第一个要求:遍历容器。所有迭代器...

  • 10-泛型算法

    10.1 概述 #include //大部分算法定义 #include //数值泛型算法 ...

  • C++---CHAPTER 10: GENERIC ALGORI

    泛型算法:经典算法的公共接口。 泛型的含义:用于不同类型的元素和多种容器类型,以及其他类型的序列。 初识 例子:泛...

  • 泛型算法

    顺序容器中只定义了添加删除访问等简单操作,用户更多的需求,只能通过泛型算法实现。此类算法称之为"泛型"是因为它们可...

  • 泛型算法

    好久没有更新博客了,最近一直想把我以前的老笔记本换成 Arch + dwm 的样式来使用。现在基本已经弄完了。后面...

  • Swift 泛型

    一、定义 什么是泛型? 网络上对泛型编程的定义是这样的: 泛型编程是一种算法机制为types to-be-spec...

  • 第10章 泛型算法

    10.1 概述 范型算法:实现了一些经典算法的公共接口,可用于不同类型的元素、多种类型的容器、其他类型序列。 迭代...

网友评论

      本文标题:10泛型算法

      本文链接:https://www.haomeiwen.com/subject/krbhpxtx.html