第十六篇:泛型算法结构

Posted 穆晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十六篇:泛型算法结构相关的知识,希望对你有一定的参考价值。

前言

       C++提供了很多算法(超过一百个),要想掌握这些算法的使用需要将它们都死记下来吗?当然不用了,本文将为你剖析泛型算法的基本结构,让你以后对这些算法做到“ 望名生义 ”。

算法的形参结构

       绝大多数算法的形参采用以下四种形式之一:

       1. 算法名 ( 起始迭代器, 末端迭代器, 其他参数 )

       说明:起始迭代器和末端迭代器标识了算法的输入范围,其他参数与算法特性有关。

       2. 算法名 ( 起始迭代器, 末端迭代器, 插入迭代器/流迭代器, 其他参数 )

       说明:起始迭代器和末端迭代器标识了算法的输入范围,插入迭代器/流迭代器标识了输出对象(其范围假定和输入范围一样大),其他参数与算法特性有关。

       3. 算法名 ( 起始迭代器1, 末端迭代器1, 起始迭代器2, 其他参数 )

       说明:起始迭代器1和末端迭代器1标识了算法的输入范围1,起始迭代器2标识了算法的输入范围2(其范围假定和输入范围一样大),其他参数与算法特性有关。

       4. 算法名 ( 起始迭代器1, 末端迭代器1, 起始迭代器2, 末端迭代器2, 其他参数 )

       说明:起始迭代器1和末端迭代器1标识了算法的输入范围1,起始迭代器2和末端迭代器2标识了算法的输入范围2,其他参数与算法特性有关。

算法的命名结构

       1. 算法名带_if后缀:表示该算法需要使用谓词函数(相较于无_if版本)。

       2. 算法名带_copy后缀:表示该算法会将结果输出到别的位置,而不会破坏输入范围内的数据(相较于无_copy版本)。

以上是关于第十六篇:泛型算法结构的主要内容,如果未能解决你的问题,请参考以下文章

算法漫游指北(第十篇):泛型递归递归代码模板递归思维要点分治算法回溯算法

Scala入门到精通——第十六节 泛型与注解

二刷java基础第十六天——泛型和类型通配符

第十六章 模板与泛型编程

我的第十六篇博客---HTML

跟我学SpringCloud | 第十六篇:微服务利剑之APM平台Pinpoint