//********************************************************
// The following code example is taken from the book
//  C++23 - The Complete Guide
//  by Nicolai M. Josuttis (www.josuttis.com)
//  https://www.cppstd23.com
//
// The code is licensed under a
//  Creative Commons Attribution 4.0 International License
//  https://creativecommons.org/licenses/by/4.0/
//********************************************************


#include <print>
#include <vector>
#include <algorithm>

int main()
{
  std::vector<std::string> coll{"one", "two", "three", "four", "five",
                                "six", "seven", "eight", "nine"};
  std::println("coll: {}\n", coll);

  // move all elements 2 positions towards the back:
  auto ret1 = std::ranges::shift_right(coll, 2);
  std::println("coll: {}", coll);
  std::println(" ret: {}\n", ret1);

  // move all elements 4 positions towards the front:
  auto ret2 = std::ranges::shift_left(coll, 4);
  std::println("coll: {}", coll);
  std::println(" ret: {}", ret2);
}

