• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-12-08 00:17 Aet 隐藏边栏 |   抢沙发  5 
文章评分 2 次,平均分 5.0

排序

sort

stable_sort

  1. 对一段元素排序并保证维持相等元素的原始顺序

partial_sort

  1. 3个迭代器参数first, second,last
  2. 这个算法会应用到[first,last)这个范围,执行算法后,[first,second)会包含降序序列中[first,last)中最小的second-first个元素

partial_sort_copy

  1. 本质上和partial_sort是相同的,除了会将排序元素复制到一个不同的元素段(另一个容器)中

nth_element

  1. 应用的范围由第一个和第三个参数指定
  2. 第二个参数是指向第n个元素的迭代器
  3. 如果这个范围内的元素是完全有序的,这个函数的执行会导致第n个元素被放置在适当的位置
    1. 这个范围内,第n个元素之前的元素都小于第n个元素,而且它后面的每个元素会比它大

合并

merge

  1. 合并两个序列并将结果保存到第三个序列中

inplace_merge

  1. 合并同一个序列中两个连续有序的元素序列

搜索

find

  1. 在前两个参数所定义的范围内查找第三个参数相等的第一个对象

find_if

  1. 在前两个参数所定义的范围内查找可以使第三个参数指定的谓词返回ture的第一个对象

find_if_not

  1. 在前两个参数所定义的范围内查找可以使第三个参数指定的谓词返回false的第一个对象

find_first_of

  1. 在第一个序列中搜索第二个序列在第一个序列中第一次出现的任何元素

adjacent_find

  1. 搜索序列中两个连续相等的元素

find_end

  1. 在第一个序列中查找最后一个和另一个元素段匹配的匹配项
  2. 也可以看作在第一个元素序列中查找子序列的最后一个匹配项
  3. 返回一个指向子序列的最后一个匹配项的第一个元素的迭代器,或是返回一个指向这个序列的接受迭代器

search

  1. 和find_end相似,它所查找的是第一个匹配项而不是最后一个

search_n

  1. 搜索给定元素的匹配项,它在序列中连续出现了给定的次数

分区

partition

  1. 在序列中分区元素会重新对元素进行排列,所有给定谓词返回true的元素会被放在使谓词返回false的元素的前面

partition_copy

  1. 和partition相同的方式对序列进行分区
  2. 但那些使谓词返回true的元素会被复制到一个单独的序列中,使谓词返回false的元素会被复制到第三个序列中

partition_point

  1. 获取分区序列中第一个分区的结束迭代器
  2. 前两个参数定义检查范围的正向迭代器,最后一个参数用来对序列进行分区的谓词
  3. 在使用这个函数之前,可以使用is_partitioned来判断是否已经被分区

查找

binary_search

  1. 二分查找算法

lower_bound

  1. 在前两个参数指定的范围内查找不小于第三个参数的第一个元素

upper_bound

  1. 在前两个参数指定的范围内查找大于第三个参数的第一个元素

equal_range

  1. 找出有序序列中所有和给定元素相等的元素

查属性

all_of

  1. 序列中的所有元素都使谓词返回true,则返回true

any_of

  1. 序列中的任意一个元素使谓词返回true,则返回true

none_of

  1. 序列中没有元素使谓词返回true,则返回true

序列比较

equal

  1. 两个序列长度相等,并且对应元素都相等,返回true

mismatch

  1. 两个序列是否匹配,如果不匹配,返回位置

lexicographical_compare

  1. 以字典序比较由开始迭代器和结束迭代器定义的两个序列
  2. 第三,第四个参数是第二个序列的开始结束迭代器
  3. 如果第一个序列小于第二个,返回true,否则返回false

next_permutation

  1. 会生成一个序列的重排列,它是所有可能的字典序中的下一个排列

prev_permutation

is_permutation

  1. 检查一个序列是不是另一个序列的排序

复制

copy_n

  1. 从源容器复制指定个数的元素到目的容器中
  2. 第一个参数是指向第一个源元素的输入迭代器,第二个参数是需要复制的元素的个数,第三个参数是指向目的容器的第一个位置的迭代器

copy_if

  1. 从源序列复制使谓词返回true的元素,相当于一个过滤器

copy_backward

  1. 从最后一个元素开始直到第一个元素,复制元素

reverse_copy

  1. 将源序列中的元素复制到目的序列中,但是目的序列中的是逆序的

unique_copy

  1. 会将一个序列复制到另一个序列中,同时会移除连续的重复元素

去重

unique

  1. 在序列中原地移除重复的元素
  2. 要求被处理的序列必须是正向迭代器所指定的

旋转

rotate

  1. 从左边选择序列的元素,选择序列

rotate_copy

  1. 在新序列中生成一个序列的选择副本,并保持序列不变

移动

move

  1. 将前两个输入迭代器指定的序列移到第三个参数定义的目的序列的开始位置,第三个参数必须是输出迭代器

remove

remove_copy

remove_copy_if

设置

fill

fill_n

for_each

  1. 将一个函数对象应用到序列中的每一个元素上

generate

  1. 保存函数为序列中每个元素所返回的值

transform

  1. 将函数应用到序列的元素上,并将这个函数的返回值保存到两一个序列中,它返回的迭代器指向输出序列所保存的最后一个元素的下一个位置

替换

replace

replace_if

replace_copy

随机数

生成器

  1. std::default_random_engine

离散均匀分布

  1. uniform_int_distribution
    1. 默认int
  2. a
    1. 上边界
  3. b
    1. 下边界

连续均匀分布

  1. uniform_real_distribution
  2. 默认double

标准均匀分布

  1. generate_canonical
    1. 提供[0,1)范围内的浮点值

正态分布

  1. normal_distribution
    1. 默认期望是0,方差是1.0

对数分布

  1. lognormal_distribution

离散分布

  1. discrete_distribution

分段常数分布

  1. piecewise_constant_distribution

分段线性分布

  1. piecewise_linear_distribution

泊松分布

  1. poisson_distribution

几何分布

  1. geometric_distribution

指数分布

  1. exponential_distribution

伽马分布

  1. gamma_distribution

威布尔分布

  1. weibull_distribution

二项式分布

  1. binomial_distribution

极值分布

  1. extreme_value_distribution

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享