Есть ли способ использовать std::rotate
для списка
std::list<int> v = { 0,7, 1,2 };
так как эти левые / правые повороты
std::rotate(v.begin(), v.begin() + 1, v.end());
std::rotate(v.rbegin(), v.rbegin() + 1, v.rend());
работа для вектора?
std::vector<int> v = { 0, 7, 1, 2 };
Один из возможных способов - скопировать список в вектор
std::vector<int> u{ std::begin(v), std::end(v) };
и наоборот, но я нашел его слишком «длинным» ... Прямое вращение списка приводит к следующим ошибкам:
Error C2672 'std::rotate': no matching overloaded function found
Error C2676 binary '+': std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>>' does not define this operator or a conversion to a type acceptable to the predefined operator
Спасибо за вашу помощь.