SGI

rotate_copy

类别:算法 组件类型:函数

原型

template <class ForwardIterator, class OutputIterator>
OutputIterator rotate_copy(ForwardIterator first, ForwardIterator middle,
                           ForwardIterator last, OutputIterator result);

说明

Rotate_copy从该范围[first, last)复制元素到该范围[result, result + (last - first))使得*中间被复制到*结果, *(中间 + 1)被复制到*(结果 + 1)依次类推。正式地说,针对每个整数n使得0 <= n < last - first, rotate_copy执行赋值*(result + (n + (last - middle)) % (last - first)) = *(first + n). Rotate_copy类似于复制后跟旋转,但效率更高。返回值为结果 + (最后 - 起始).

定义

在标准头文件 算法 中定义,以及非标准后退兼容头文件 algo.h 中定义。

类型要求

前提条件

复杂性

线性。Rotate_copy确切执行最后 - 起始赋值。

示例

const char alpha[] = "abcdefghijklmnopqrstuvwxyz";
rotate_copy(alpha, alpha + 13, alpha + 26, ostream_iterator<char>(cout));
// The output is nopqrstuvwxyzabcdefghijklm

备注

[1] 满足这两个要求,因此[first, last)是一个有效范围。

另请参见

旋转, 复制.
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息