G.5.2 修改式序列操作(1)
表G.14对修改式序列操作进行了总结。其中没有列出参数,而重载函数也只列出了一次。表后做了更详细的说明,其中包括原型。因此,可以浏览该表,以了解函数的功能,如果对某个函数非常感兴趣,则可以了解其细节。
表G.14修改式序列操作
|
函 数< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
描 述 |
|
copy( ) |
将一个区间中的元素复制到迭代器指定的位置 |
|
copy_n( ) |
从一个迭代器指定的地方复制n个元素到另一
个迭代器指定的地方,这是C++(www.cppentry.com)11新增的 |
|
copy_if( ) |
将一个区间中满足谓词测试的元素复制到迭代器
指定的地方,这是C++(www.cppentry.com)11新增的 |
|
copy_backward( ) |
将一个区间中的元素复制到迭代器指定的地方。
复制时从区间结尾开始,由后向前进行 |
|
move( ) |
将一个区间中的元素移到迭代器指定的地方,
这是C++(www.cppentry.com)11新增的 |
|
move_backward( ) |
将一个区间中的元素移到迭代器指定的地方;
移动时从区间结尾开始,由后向前进行。这是C++(www.cppentry.com)11新增的 |
|
swap( ) |
交换引用指定的位置中存储的值 |
|
swap_ranges( ) |
对两个区间中对应的值进行交换 |
|
iter_swap( ) |
交换迭代器指定的位置中存储的值 |
|
transform( ) |
将函数对象用于区间中的每一个元素
(或区间对中的每对元素),并将返回的值
复制到另一个区间的相应位置 |
|
replace( ) |
用另外一个值替换区间中某个值的每个实例 |
|
replace_if( ) |
如果用于原始值的谓词函数对象返回true,
则使用另一个值来替换区间中某个值的所有实例 |
|
replace_copy( ) |
将一个区间复制到另一个区间中,使用另外一
个值替换指定值的每个实例 |
|
replace_copy_if( ) |
将一个区间复制到另一个区间,使用指定值替换
谓词函数对象为true的每个值 |
|
fill( ) |
将区间中的每一个值设置为指定的值 |
|
fill_n( ) |
将n个连续元素设置为一个值 |
|
generate( ) |
将区间中的每个值设置为生成器的返回值,生成
器是一个不接受任何参数的函数对象 |
|
generate_n( ) |
将区间中的前n个值设置为生成器的返回值,生成
器是一个不接受任何参数的函数对象 |
|
remove( ) |
删除区间中指定值的所有实例,并返回一个迭代器,
该迭代器指向得到的区间的超尾 |
|
remove_if( ) |
将谓词对象返回true的值从区间中删除,并返回一
个迭代器,该迭代器指向得到的区间的超尾 |
续表
|
函 数 |
描 述 |
|
remove_copy( ) |
将一个区间中的元素复制到另一个区间中,
复制时忽略与指定值相同的元素 |
|
remove_copy_if( ) |
将一个区间中的元素复制到另一个区间中,复制
时忽略谓词函数对象返回true的元素 |
|
unique( ) |
将区间内两个或多个相同元素组成的序列压缩为一个元素 |
|
unique_copy( ) |
将一个区间中的元素复制到另一个区间中,并将两
个或多个相同元素组成的序列压缩为一个元素 |
|
reverse( ) |
反转区间中的元素的排列顺序 |
|
reverse_copy( ) |
按相反的顺序将一个区间中的元素复制到另一个区间中 |
|
rotate( ) |
将区间中的元素循环排列,并将元素左转 |
|
rotate_copy( ) |
以旋转顺序将区间中的元素复制到另一个区间中 |
|
random_shuffle( ) |
随机重新排列区间中的元素 |
|
shuffle( ) |
随机重新排列区间中的元素,使用的函数对象满足
C++(www.cppentry.com)11对统一随机生成器的要求 |
|
is_partitioned( ) |
如果区间根据指定的谓词进行了分区,则返回true |
|
partition( ) |
将满足谓词函数对象的所有元素都放在不满足谓
词函数对象的元素之前 |
|
stable_partition( ) |
将满足谓词函数对象的所有元素放置在不满足谓词
函数对象的元素之前,每组中元素的相对顺序保持不变 |
|
partition_copy( ) |
将满足谓词函数对象的所有元素都复制到一个输
出区间中,并将其他元素都复制到另一个输出区
间中,这是C++(www.cppentry.com)11新增的 |
|
partition_point( ) |
对于根据指定谓词进行了分区的区间,返回一个迭
代器,该迭代器指向第一个不满足该谓词的元素 |
下面详细地介绍这些修改型序列操作。对于每个函数,首先列出其原型,然后做简要的描述。正如前面介绍的,迭代器对指出了区间,而选择的模板参数名指出了迭代器的类型。通常,[first, last]区间指的是从first到last(不包括last)。作为参数传递的函数是函数对象,这些函数对象可以是指针,也可以是定义了( )操作的对象。正如第16章介绍的,谓词是接受一个参数的布尔函数,二元谓词是接受两个参数的布尔函数(函数可以不是bool类型,只要它对于false返回0,对于true返回非0值)。另外,正如第16章介绍的,一元函数对象接受一个参数,而二元函数对象接受两个参数。