一。replace()
替换算法将指定元素值替换为新值,使用原型例如以下,将迭代器[first,last)中值为old_value的元素所有替换为new_value值。
函数原型:
- template < class ForwardIterator, class T >
- void replace ( ForwardIterator first, ForwardIterator last,
- const T& old_value, const T& new_value );
參数说明:
二、swap()
我们先来看看swap的函数原型:
- template <class T> void swap ( T& a, T& b )
- {
- T c(a); a=b; b=c;
- }
-
三、copy()
元素复制算法copy。该算法主要用于容器之间元素的拷贝,即将迭代器区间[first,last)的元素拷贝到由复制目标result给定的区间[result,result+(last-first))中。以下我们来看看它的函数原型:
函数原形:
- template<class InputIterator, class OutputIterator>
- OutputIterator copy(
- InputIterator _First,
- InputIterator _Last,
- OutputIterator _DestBeg
- );
參数
- _First, _Last
- 指出被复制的元素的区间范围[ _First,_Last).
- _DestBeg
- 指出拷贝到的目标区间起始位置
返回值
返回一个迭代器,指出已被复制的最后一个元素的下一个位置
copy_backward算法与copy在行为方面相似,仅仅只是它的复制过程与copy背道而驰,其复制过程是从最后的元素開始复制,直到首元素复制出来。也就是说,复制操作是从last-1開始,直到first结束。这些元素也被从后向前拷贝到目标容器中,从result-1開始,一直复制last-first个元素。举个简单的样例:已知vector {0, 1, 2, 3, 4, 5},现我们须要把最后三个元素(3, 4, 5)拷贝到前面三个(0, 1, 2)位置中,那我们能够这样设置:将first设置值3的位置,将last设置为5的下一个位置,而result设置为3的位置,这样,就会先将值5拷贝到2的位置,然后4拷贝到1的位置,最后3拷贝到0的位置,得到我们所要的序列{3, 4, 5, 3, 4, 5}。以下我们来看一下copy_backward的函数原型:
函数原型:
- template<class BidirectionalIterator1, class BidirectionalIterator2>
- BidirectionalIterator2 copy_backward ( BidirectionalIterator1 first,
- BidirectionalIterator1 last,
- BidirectionalIterator2 result);
參数:
first, last
指出被复制的元素的区间范围[first,last).
result
指出拷贝到目标区间的详细位置[result-(last-first),result)
返回值:
返回一个迭代器,指出已被复制元素区间的起始位置
五、find_end()find_end算法在一个序列中搜索出最后一个与还有一序列匹配的子序列。有例如以下两个函数原型,在迭代器区间[first1, last1)中搜索出与迭代器区间[first2, last2)元素匹配的子序列,返回首元素的迭代器或last1。
函数原型:
- template<class ForwardIterator1, class ForwardIterator2>
- ForwardIterator1 find_end(
- ForwardIterator1 _First1,
- ForwardIterator1 _Last1,
- ForwardIterator2 _First2,
- ForwardIterator2 _Last2
- );
- template<class ForwardIterator1, class ForwardIterator2, class Pr>
- ForwardIterator1 find_end(
- ForwardIterator1 _First1,
- ForwardIterator1 _Last1,
- ForwardIterator2 _First2,
- ForwardIterator2 _Last2,
- BinaryPredicate _Comp
- );
-