
29.10.2009, 15:35
|
|
Познающий
Регистрация: 15.03.2009
Сообщений: 77
Провел на форуме: 984248
Репутация:
73
|
|
Сообщение от Lee_fx
Код:
#include <algorithm>
template < typename T >
void _rotate(T *arr, int size, int step, bool right) {
if(right)
for(int i=0; i<size; ++i) rotate(arr[i], arr[i]+size-step, arr[i]+size);
else
for(int i=0; i<size; ++i) rotate(arr[i], arr[i]+step, arr[i]+size);
}
...
_rotate(matrix, 5, 2, 0); // Сдвинуть на 2 влево
_rotate(matrix, 5, 1, 1); // Сдвинуть на 1 вправо
Чувак спасибо
Классно, наконец я увидел реализацию с разворотами
Только проблема в том ,что это для одномерного массива,
а мне бы для двухмерного квадратного
|
|
|