copy(InputIterator first, InputIterator last, OutputIterator result)
将range1的内容复制到[result, result + (last - first)
copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionIterator2 result)
将range1的内容复制到[result, result + (last - first),与copy不同的是,复制的顺序是从后往前复制,另外,Iterator必须是BidirectionalIterator
互换元素
swap(Assianable& a, Assignable& b)
swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2)
将两个大小相同的range的内容互换
transform(InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op)
对range中的元素执行函数op,将返回值复制到range[result, result + (last - first))
transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction binary_op)
对range1与range2中同一位置的元素执行binary_op,将返回值复制到[result, result + (last - first))
replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value)
将旧值替换成新值
replace_if(ForwardIterator first, ForwardIterator last, Predict pred, const T& new_value)
将符合pred函数的旧值替换成新值
replace_copy(InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value)
将range中的值复制到[result, result + (last - first)), 在复制时将old_value替换成new_value
注意原来的range中值不会被改变
replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predict pred, const T& new_value)
将old_value替换成pred的版本
fill(ForwardIterator first, ForwardIterator last, const T& value)
将value赋值给range中的每个元素
fill_n(ForwardIterator frist, size n, const T& value)
将value赋值给[first, first + n)中的所有元素,返回值为first + n
generate(ForwardIterator first, ForwardIterator last, Generate gen)
gen为一无参数的函数。函数对[first, last)中的所有i, 执行*i = gen()
generate(ForwardIterator first, size n, Generate gen)
remove(ForwardIterator first, ForwardIterator last, const T& value)
将值value从[first, last)中移除
例如:A[] = {1,2,3,4,5,6,4,8,4,10}
remove(A, A + 10, 4)
则A中的元素变为{1,2,3,5,6,8,10},即被移除后的值的位置被后面的值填充,但末尾的空位仍在(实际上末尾的值没有改变)
remove函数不会改变container的大小
remove(ForwardIterator first, ForwardIterator last, Predict pred)
加了pred的版本
remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value)
算法从[first, last)中将元素复制至以result开头的range上,但不会复制与value相等的元素,返回值是[用来安放执行结果]的range的尾端。即如果有n个
元素与value不同,则返回值为result + n
remove_copy_if()
加了pred的版本
unique(FrowardIterator first, ForwardIterator last)
如果range中有连续出现的元素,则会移除该群中第一个之外的所有元素。
同样,空出来的位置会被后面的值填充
unique(ForwardIterator first, ForwardIterator last, BinaryPredict binary_pred)
unique_copy()