📅  最后修改于: 2023-12-03 14:59:45.545000             🧑  作者: Mango
Rotate()函数是C++ STL(Standard Template Library)中的一个算法函数,用于在容器中旋转元素的位置。它的作用是将指定范围内的元素进行循环移动,使得其中一个元素成为新的起始元素。
Rotate()函数的函数签名如下所示:
template<class ForwardIt>
ForwardIt rotate(ForwardIt first, ForwardIt n_first, ForwardIt last);
first
:要旋转的元素范围的起始位置的迭代器n_first
:指向需要成为新起始点的位置的迭代器last
:要旋转的元素范围的结束位置的迭代器Rotate()函数将从[first, last)范围内的元素顺序调整为以n_first为起始位置的新顺序,即将[first, n_first)范围内的元素移到[last - (n_first - first), last)范围内,而将剩余的元素[i, j)移到新的位置[first + (last - n_first), last)。
该函数返回一个迭代器,指向新的起始点,即n_first的位置。
下面是一个使用Rotate()函数的示例代码:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::cout << "原始容器:" << std::endl;
for (const auto& num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
std::rotate(vec.begin(), vec.begin()+3, vec.end());
std::cout << "旋转后的容器:" << std::endl;
for (const auto& num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:
原始容器:
1 2 3 4 5 6 7 8 9
旋转后的容器:
4 5 6 7 8 9 1 2 3
以上示例代码中,我们先输出原始容器中的元素,然后使用Rotate()函数将容器中的元素进行旋转操作,以第4个元素为新起始点。最后输出旋转后容器中的元素,可以看到元素的顺序发生了改变。
更多关于C++ STL中的算法函数请参考官方文档。