std::rotate を調べた
コンテナの要素を回転するアルゴリズムです
#include <iostream> #include <vector> #include <algorithm> // std::rotate int main(void) { std::vector<int> v{1,2,3,4,5,6,7}; std::cout << "before: "; for(auto i:v) std::cout << i << " "; std::cout << std::endl; std::rotate(v.begin(),v.begin()+1,v.end()); // 左へ回転 std::cout << "rotate left: "; for(auto i:v) std::cout << i << " "; std::cout << std::endl; std::rotate(v.rbegin(),v.rbegin()+1,v.rend()); // 右へ回転 std::cout << "rotate right: "; for(auto i:v) std::cout << i << " "; std::cout << std::endl; return 0; }
before: 1 2 3 4 5 6 7 rotate left: 2 3 4 5 6 7 1 rotate right: 1 2 3 4 5 6 7