G.5.2 修改式序列操作(3)
函数move_backward( ) std::move( )将[first, last)区间中的元素移到区间[result - (last - first), result)中。复制从last - 1开始,该元素被复制到位置result - 1,然后由后向前处理,直到first。该函数返回result - (last - first),即指向被复制到的最后一个位置后面的迭代器。该函数要求result不位于[first, last)区间中。然而,由于复制是从后向前进行的,因此目标和源可能重叠。
7.swap( )
swap( )函数对引用指定的两个位置中存储的值进行交换(C++(www.cppentry.com)11将这个函数移到了头文件utility中)。
8.swap_ranges( )
swap_ranges( )函数将[first1, last1]区间中的值与从first2开始的区间中对应的值交换。这两个区间不能重叠。
9.iter_swap( )
iter_swap( )函数将迭代器指定的两个位置中存储的值进行交换。
10.transform( )
第一个版本的transform( )将一元函数对象op应用到[first, last)区间中每个元素,并将返回值赋给从result开始的区间中对应的元素。因此,*result被设置为op(*first),依此类推。该函数返回result + (last - first),即目标区间的超尾值。
第二个版本的transform( )将二元函数对象op应用到[first1, last1)区间和[first2, last2)区间中的每个元素,并将返回值赋给从result开始的区间中对应的元素。因此,*result被设置成op(*first1, *first2),依此类推。该函数返回result + (last - first),即目标区间的超尾值。
11.replace( )
replace( )函数将[first, last]中的所有old_value替换为new_value。
12.replace_if( )