Сдвиг строки в 2D Вектор - PullRequest
       16

Сдвиг строки в 2D Вектор

0 голосов
/ 02 ноября 2019

У меня есть вектор, подобный приведенному ниже:

vector<vector<double>> A;

И у меня есть такие значения:

1,2,3
3,4,5
5,6,7
8,9,6

Я хочу сдвинуть строку вниз с шага 3, а затем стать ниже:

3,4,5
5,6,7
8,9,6
1,2,3

Как я могу это сделать?

1 Ответ

1 голос
/ 02 ноября 2019

std :: rotate на внешнем векторе должен сделать трюк:

#include <algorithm> // std::rotate
#include <iterator>  // std::next

std::rotate(A.begin(), std::next(A.begin()), A.end());

A.begin() - возвращает итератор, указывающий на первый элемент - или end(), если этопустой вектор.

std::next(A.begin()) - возвращает итератор, указывающий на второй элемент в векторе.

A.end() - возвращает итератор, указывающий на один шаг после последнего элемента в векторе.

Первый и последний аргумент (A.begin() и A.end()) устанавливает границы для std::rotate, а средний аргумент сообщает ему, каким должен быть новый первый элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...