Cpp Standard Library 简明教程

C++ Library - <algorithm>

Introduction to algorithm

algorithm 库提供了一些可用于多种用途的函数,例如搜索、排序、计数、操作等。这些函数对元素范围进行操作,并且该范围定义为 [first, last)。

Functions from <algorithm>

下面是从 <algorithm> header 中列出所有方法。

Member functions

Sr.No.

Method & Description

1

algorithm::adjacent_find() 查找连续两个元素的第一个匹配项,如果连续存在两个连续的匹配项,则返回指向第一个元素的迭代器,否则返回指向最后一个元素的迭代器。

2

algorithm::adjacent_find() 查找连续两个元素的第一个匹配项,如果连续存在两个连续的匹配项,则返回指向第一个元素的迭代器,否则返回指向最后一个元素的迭代器。

3

algorithm::all_of() 如果谓词对 first 到 last 范围内的所有元素返回 true,则返回 true。

4

algorithm::any_of() 如果谓词对 first 到 last 范围内的所有元素返回 true,则返回 true。

5

algorithm::binary_search() 测试值是否存在于已排序序列中。

6

algorithm::binary_search() 测试值是否存在于已排序序列中。

7

algorithm::copy() 将元素范围复制到一个新位置。

8

algorithm::copy_backward() 按相反顺序将一系列元素复制到一个新位置。

9

algorithm::copy_if() 如果谓词对值为 true,则将一系列元素复制到一个新位置。

10

algorithm::copy_n() 将前 n 个数字复制到一个新位置。

11

algorithm::count() 返回范围内值出现的次数。

12

algorithm::count_if() 返回范围内满足条件的值出现的次数。

13

algorithm::equal() 测试两组元素是否相等。

14

algorithm::equal() 测试两组元素是否相等。

15

algorithm::equal_range() 返回与特定键匹配的元素范围。

16

algorithm::equal_range() 返回与特定键匹配的元素范围。

17

algorithm::fill() 将特定值分配给一系列元素。

18

algorithm::fill_n() 将值分配给 first 指向的序列的前 n 个元素。

19

algorithm::fill_n() 将值分配给 first 指向的序列的前 n 个元素。

20

algorithm::find() 查找元素的第一次出现。

21

algorithm::find_end() 查找元素的最后一次出现。

22

algorithm::find_end() 查找元素的最后一次出现。

23

algorithm::find_first_of() 返回一个迭代器,该迭代器指向范围 (first1,last1) 中的第一个元素,该元素与 first2,last2 中的任何元素匹配。

24

algorithm::find_first_of() 返回一个迭代器,该迭代器指向范围 (first1,last1) 中的第一个元素,该元素与 first2,last2 中的任何元素匹配。

25

algorithm::find_if() 查找满足条件的元素的第一次出现。

26

algorithm::find_if_not() 查找满足条件的元素的最后一次出现。

27

algorithm::for_each() 对范围内每个元素应用预定义函数。

28

algorithm::generate() 将对 gen 的连续调用返回的值分配给 first 到 last 范围内元素。

29

algorithm::generate_n() 将对 gen 的连续调用返回的值分配给 first 指向的序列的前 n 个元素。

30

algorithm::generate_n() 将对 gen 的连续调用返回的值分配给 first 指向的序列的前 n 个元素。

31

algorithm::includes() 测试 first 集合是否是另一个集合的子集。

32

algorithm::includes() 测试 first 集合是否是另一个集合的子集。

33

algorithm::inplace_merge() 就地合并两个排序序列。

34

algorithm::inplace_merge() 就地合并两个排序序列。

35

algorithm::is_heap() 测试给定序列是否是最大堆。

36

algorithm::is_heap() 测试给定序列是否是最大堆。

37

algorithm::is_heap_until() 从序列中找到第一个违反最大堆条件的元素。

38

algorithm::is_heap_until() 从序列中找到第一个违反最大堆条件的元素。

39

algorithm::is_partitioned() 测试范围是否已分区。

40

algorithm::is_permutation() 测试序列是否为另一个序列的排列。

41

algorithm::is_permutation() 测试序列是否为另一个序列的排列。

42

algorithm::is_sorted() 测试范围是否已排序。

43

algorithm::is_sorted() 测试范围是否已排序。

44

algorithm::is_sorted_until() 从序列中找到第一个未排序的元素。

45

algorithm::is_sorted_until() 从序列中找到第一个未排序的元素。

46

algorithm::iter_swap() 交换由两个迭代器指向的对象的值。

47

algorithm::lexicographical_compare() 测试一个范围是否小于另一个范围。

48

algorithm::lexicographical_compare() 测试一个范围是否小于另一个范围。

49

algorithm::lower_bound() 找到第一个不小于给定值的值。

50

algorithm::lower_bound() 找到第一个不小于给定值的值。