Показать сообщение отдельно

  #4  
Старый 29.10.2009, 15:35
Mozy
Познающий
Регистрация: 15.03.2009
Сообщений: 77
Провел на форуме:
984248

Репутация: 73
Отправить сообщение для Mozy с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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 вправо
Чувак спасибо
Классно, наконец я увидел реализацию с разворотами
Только проблема в том ,что это для одномерного массива,
а мне бы для двухмерного квадратного
 
Ответить с цитированием