読者です 読者をやめる 読者になる 読者になる

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