reverse_copy
|
|
类别:算法 |
组件类型:函数 |
原型
template <class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy(BidirectionalIterator first,
BidirectionalIterator last,
OutputIterator result);
描述
Reverse_copy将范围内的元素复制[first, last)到范围[result, result + (last - first))使得副本是原始范围的反向。具体来说:对于每个i使得0 <= i < (last - first), reverse_copy执行赋值*(result + (last - first) - i) = *(first + i).
返回值为result + (last - first).
定义
在标准头文件 algorithm 中定义,并在非标准向后兼容头文件 algo.h 中定义。类型要求
- BidirectionalIterator 是 双向迭代器 的模型。
- OutputIterator 是 输出迭代器 的模型。
- BidirectionalIterator 的值类型可转换为 OutputIterator 的值类型集合中的类型。
前提条件
-
[first, last)是一个有效的范围。
- 有足够的空间来容纳所有正在复制的元素。更正式地说,要求是[result, result + (last - first))是一个有效的范围。
- 范围[first, last)和[result, result + (last - first))不重叠。
复杂度
线性:正好last - first赋值。示例
vector<int> V;
V.push_back(0);
V.push_back(1);
V.push_back(2);
copy(V.begin(), V.end(), ostream_iterator<int>(cout, " "));
// Output: 0 1 2
list<int> L(V.size());
reverse_copy(V.begin(), V.end(), L.begin());
copy(L.begin(), L.end(), ostream_iterator<int>(cout, " "));
// Output: 2 1 0
注释
另请参阅
reverse, copy
版权所有 © 1999 Silicon Graphics, Inc。 保留所有权利。
商标信息