- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
// TEMPLATE FUNCTION rotate
template<class _FI> inline
void rotate(_FI _F, _FI _M, _FI _L)
{if (_F != _M && _M != _L)
_Rotate(_F, _M, _L, _Iter_cat(_F)); }
template<class _FI> inline
void _Rotate(_FI _F, _FI _M, _FI _L,
forward_iterator_tag)
{for (_FI _X = _M; ; )
{iter_swap(_F, _X);
if (++_F == _M)
if (++_X == _L)
break;
else
_M = _X;
else if (++_X == _L)
_X = _M; }}
template<class _BI> inline
void _Rotate(_BI _F, _BI _M, _BI _L,
bidirectional_iterator_tag)
{reverse(_F, _M);
reverse(_M, _L);
reverse(_F, _L); }
template<class _RI> inline
void _Rotate(_RI _F, _RI _M, _RI _L,
random_access_iterator_tag)
{_Rotate(_F, _M, _L, _Dist_type(_F), _Val_type(_F)); }
template<class _RI, class _Pd, class _Ty> inline
void _Rotate(_RI _F, _RI _M, _RI _L, _Pd *, _Ty *)
{_Pd _D = _M - _F;
_Pd _N = _L - _F;
for (_Pd _I = _D; _I != 0; )
{_Pd _J = _N % _I;
_N = _I, _I = _J; }
if (_N < _L - _F)
for (; 0 < _N; --_N)
{_RI _X = _F + _N;
_RI _Y = _X;
_Ty _V = *_X;
_RI _Z = _Y + _D == _L ? _F : _Y + _D;
while (_Z != _X)
{*_Y = *_Z;
_Y = _Z;
_Z = _D < _L - _Z ? _Z + _D
: _F + (_D - (_L - _Z)); }
*_Y = _V; }}
guest 02.02.2011 11:59 # +3
TarasB 02.02.2011 12:16 # 0
bax 02.02.2011 12:30 # +1
TarasB 02.02.2011 12:36 # −2
> Автора, смутили имена переменных
> ,
Lure Of Chaos 02.02.2011 13:16 # +1
guest 02.02.2011 13:02 # −1
Ну ну. Когда в шаблонах вылезет ошибка и Вы будете думать почему, то поймете, что предназначен для восприятия человеком.
Да и вообще, хедеры такая штука, что если до включения хедера что-то не так определить, то ошибка вылезет опять же в хедере и в нем придётся разбираться.
Или Вы приспешник майкрософта, написавший этот код?
bax 02.02.2011 13:41 # 0
Lure Of Chaos 02.02.2011 12:48 # +6
нихуя не понятно )))))
brainstorm 02.02.2011 13:47 # +7
Lure Of Chaos 02.02.2011 13:50 # +2
согласен, они все такие
guest 02.02.2011 14:02 # +5
Microsoft и Windows - Govno.
TarasB 02.02.2011 14:10 # −6
Lure Of Chaos 02.02.2011 14:37 # −2
guest 02.02.2011 14:48 # 0
Lure Of Chaos 02.02.2011 14:50 # +5
guest 02.02.2011 15:01 # 0
TarasB 02.02.2011 15:08 # 0
guest 03.02.2011 23:18 # −1
Lure Of Chaos 02.02.2011 15:11 # +5
Lure Of Chaos 02.02.2011 14:02 # +2
bugmenot 02.02.2011 14:03 # +2
коммуняки!
koodeer 02.02.2011 14:08 # +3
guest 02.02.2011 14:16 # 0