Skip to content

Latest commit

 

History

History
103 lines (47 loc) · 2.8 KB

05_容器算法.md

File metadata and controls

103 lines (47 loc) · 2.8 KB

检查元素的属性

all_of() 算法会返回 true, 前提是序列中的所有元素都可以使谓词返回 true 。

any_of() 算法会返回 true, 前提是序列中的任意一个元素都可以使谓词返回 true 。

none_of() 算法会返回 true, 前提是序列中没有元素可以使谓词返回 true 。

all_of示例

any_of示例

none_of示例

count() 算法会返回等同于第三个参数的元素的个数。

count_if() 算法会返回可以使第三个参数的谓词返回 true 的元素个数。

count_if示例

序列的比较

参见

复制序列

copy_n() 略

复制copy示例

条件复制copy_if示例

copy_backward() 略

颠倒序列

reverse示例

从序列中移除相邻重复元素

unique示例

unique_copy示例

旋转序列

rotate示例

移动序列

move() 算法会将它前两个输入迭代器参数指定的序列移到第三个参数定义的目的序列的开始位置,第三个参数必须是输出迭代器。

执行 move() 之后,无法保证输入序列仍然保持不变。因此,在这之后,就不应该再使用它们。

move示例

从序列中移除元素

移除操作并不是真的将元素"移除",而是将不需要移除的元素向前移动,覆盖要"移除"的元素。

因此,移除操作不会改变被"移除"元素的序列的元素个数。

有 4 种移除算法。

remove()/remove_copy() 略

remove_if示例

remove_if与erase联合使用进行彻底移除

remove_copy_if示例

设置和修改序列中的元素

for_each() 算法用于将一个函数对象应用到序列中的每一个元素上。

for_each示例

fill() 和 fill_n() 算法提供了一种为元素序列填入给定值的简单方式,前者会填充整个序列,后者则以给定的迭代器为起始位置,为指定个数的元素设置值。

fill示例

transform() 可以将函数应用到序列的元素上,并将这个函数返回的值保存到另一个序列中。

transform示例

替换序列中的元素

replace()/replace_copy() 略

replace_if示例

replace_copy_if示例