algorithm 修改性的序列操作源码
来源:互联网 发布:json date 格式化输出 编辑:程序博客网 时间:2024/05/01 12:20
// TEMPLATE FUNCTION transform WITH UNARY OP
template<class _II, class _OI, class _Uop> inline
_OI transform(_II _F, _II _L, _OI _X, _Uop _U)
{for (; _F != _L; ++_F, ++_X)
*_X = _U(*_F);
return (_X); }
// TEMPLATE FUNCTION transform WITH BINARY OP
template<class _II1, class _II2, class _OI, class _Bop> inline
_OI transform(_II1 _F1, _II1 _L1, _II2 _F2, _OI _X, _Bop _B)
{for (; _F1 != _L1; ++_F1, ++_F2, ++_X)
*_X = _B(*_F1, *_F2);
return (_X); }
// TEMPLATE FUNCTION copy
template<class _II, class _OI> inline
_OI copy(_II _F, _II _L, _OI _X)
{for (; _F != _L; ++_X, ++_F)
*_X = *_F;
return (_X); }
// TEMPLATE FUNCTION copy_backward
template<class _BI1, class _BI2> inline
_BI2 copy_backward(_BI1 _F, _BI1 _L, _BI2 _X)
{while (_F != _L)
*--_X = *--_L;
return (_X); }
template<class _Ty> inline
void swap(_Ty& _X, _Ty& _Y)
{_Ty _Tmp = _X;
_X = _Y, _Y = _Tmp; }
// TEMPLATE FUNCTION iter_swap
template<class _FI1, class _FI2> inline
void iter_swap(_FI1 _X, _FI2 _Y)
{_Iter_swap(_X, _Y, _Val_type(_X)); }
template<class _FI1, class _FI2, class _Ty> inline
void _Iter_swap(_FI1 _X, _FI2 _Y, _Ty *)
{_Ty _Tmp = *_X;
*_X = *_Y, *_Y = _Tmp; }
// TEMPLATE FUNCTION swap_ranges
template<class _FI1, class _FI2> inline
_FI2 swap_ranges(_FI1 _F, _FI1 _L, _FI2 _X)
{for (; _F != _L; ++_F, ++_X)
iter_swap(_F, _X);
return (_X); }
// TEMPLATE FUNCTION replace
template<class _FI, class _Ty> inline
void replace(_FI _F, _FI _L, const _Ty& _Vo, const _Ty& _Vn)
{for (; _F != _L; ++_F)
if (*_F == _Vo)
*_F = _Vn; }
// TEMPLATE FUNCTION replace_if
template<class _FI, class _Pr, class _Ty> inline
void replace_if(_FI _F, _FI _L, _Pr _P, const _Ty& _V)
{for (; _F != _L; ++_F)
if (_P(*_F))
*_F = _V; }
// TEMPLATE FUNCTION generate
template<class _FI, class _Gen> inline
void generate(_FI _F, _FI _L, _Gen _G)
{for (; _F != _L; ++_F)
*_F = _G(); }
// TEMPLATE FUNCTION generate_n
template<class _OI, class _Pd, class _Gen> inline
void generate_n(_OI _F, _Pd _N, _Gen _G)
{for (; 0 < _N; --_N, ++_F)
*_F = _G(); }
// TEMPLATE FUNCTION remove
template<class _FI, class _Ty> inline
_FI remove(_FI _F, _FI _L, const _Ty& _V)
{_F = find(_F, _L, _V);
if (_F == _L)
return (_F);
else
{_FI _Fb = _F;
return (remove_copy(++_F, _L, _Fb, _V)); }}
// TEMPLATE FUNCTION remove_if
template<class _FI, class _Pr> inline
_FI remove_if(_FI _F, _FI _L, _Pr _P)
{_F = find_if(_F, _L, _P);
if (_F == _L)
return (_F);
else
{_FI _Fb = _F;
return (remove_copy_if(++_F, _L, _Fb, _P)); }}
// TEMPLATE FUNCTION remove_copy
template<class _II, class _OI, class _Ty> inline
_OI remove_copy(_II _F, _II _L, _OI _X, const _Ty& _V)
{for (; _F != _L; ++_F)
if (!(*_F == _V))
*_X++ = *_F;
return (_X); }
// TEMPLATE FUNCTION remove_copy_if
template<class _II, class _OI, class _Pr> inline
_OI remove_copy_if(_II _F, _II _L, _OI _X, _Pr _P)
{for (; _F != _L; ++_F)
if (!_P(*_F))
*_X++ = *_F;
return (_X); }
// TEMPLATE FUNCTION unique
template<class _FI> inline
_FI unique(_FI _F, _FI _L)
{_F = adjacent_find(_F, _L);
return (unique_copy(_F, _L, _F)); }
// TEMPLATE FUNCTION unique WITH PRED
template<class _FI, class _Pr> inline
_FI unique(_FI _F, _FI _L, _Pr _P)
{_F = adjacent_find(_F, _L, _P);
return (unique_copy(_F, _L, _F, _P)); }
// TEMPLATE FUNCTION unique_copy
template<class _II, class _OI> inline
_OI unique_copy(_II _F, _II _L, _OI _X)
{return (_F == _L ? _X :
_Unique_copy(_F, _L, _X, _Iter_cat(_F))); }
template<class _II, class _OI> inline
_OI _Unique_copy(_II _F, _II _L, _OI _X, input_iterator_tag)
{return (_Unique_copy(_F, _L, _X, _Val_type(_F))); }
template<class _II, class _OI, class _Ty> inline
_OI _Unique_copy(_II _F, _II _L, _OI _X, _Ty *)
{_Ty _V = *_F;
for (*_X++ = _V; ++_F != _L; )
if (!(_V == *_F))
_V = *_F, *_X++ = _V;
return (_X); }
template<class _FI, class _OI> inline
_OI _Unique_copy(_FI _F, _FI _L, _OI _X, forward_iterator_tag)
{_FI _Fb = _F;
for (*_X++ = *_Fb; ++_F != _L; )
if (!(*_Fb == *_F))
_Fb = _F, *_X++ = *_Fb;
return (_X); }
template<class _BI, class _OI> inline
_OI _Unique_copy(_BI _F, _BI _L, _OI _X,
bidirectional_iterator_tag)
{return (_Unique_copy(_F, _L, _X, forward_iterator_tag())); }
template<class _RI, class _OI> inline
_OI _Unique_copy(_RI _F, _RI _L, _OI _X,
random_access_iterator_tag)
{return (_Unique_copy(_F, _L, _X, forward_iterator_tag())); }
// TEMPLATE FUNCTION unique_copy WITH PRED
template<class _II, class _OI, class _Pr> inline
_OI unique_copy(_II _F, _II _L, _OI _X, _Pr _P)
{return (_F == _L ? _X :
_Unique_copy(_F, _L, _X, _P, _Iter_cat(_F))); }
template<class _II, class _OI, class _Pr> inline
_OI _Unique_copy(_II _F, _II _L, _OI _X, _Pr _P,
input_iterator_tag)
{return (_Unique_copy(_F, _L, _X, _P, _Val_type(_F))); }
template<class _II, class _OI, class _Ty, class _Pr> inline
_OI _Unique_copy(_II _F, _II _L, _OI _X, _Pr _P, _Ty *)
{_Ty _V = *_F;
for (*_X++ = _V; ++_F != _L; )
if (!_P(_V, *_F))
_V = *_F, *_X++ = _V;
return (_X); }
template<class _FI, class _OI, class _Pr> inline
_OI _Unique_copy(_FI _F, _FI _L, _OI _X, _Pr _P,
forward_iterator_tag)
{_FI _Fb = _F;
for (*_X++ = *_Fb; ++_F != _L; )
if (!_P(*_Fb, *_F))
_Fb = _F, *_X++ = *_Fb;
return (_X); }
template<class _BI, class _OI, class _Pr> inline
_OI _Unique_copy(_BI _F, _BI _L, _OI _X, _Pr _P,
bidirectional_iterator_tag)
{return (_Unique_copy(_F, _L, _X, _P,
forward_iterator_tag())); }
template<class _RI, class _OI, class _Pr> inline
_OI _Unique_copy(_RI _F, _RI _L, _OI _X, _Pr _P,
random_access_iterator_tag)
{return (_Unique_copy(_F, _L, _X, _P,
forward_iterator_tag())); }
- algorithm 修改性的序列操作源码
- algorithm 非修改性序列操作源码
- 修改性序列汇总<algorithm>
- STL 非修改性的序列操作
- C++ 算法库(2) 修改内容的序列操作
- C++ 修改内容的序列操作 算法(2)
- 管理序列+序列的伪列+修改序列+删除序列
- Oracle的序列操作
- 序列的区间操作
- algorithm头文件源码
- Oracle修改有规则的序列
- Eclipse的源码修改
- Algorithm - 最长递增子序列
- 【algorithm】字符串操作
- JPA的修改操作
- c#对xml多属性节点的增加,删除,修改操作源码
- c#对xml多属性节点的增加,删除,修改操作源码
- Mycat源码修改分表规则的CRUD操作测试与改进
- VB新手入门之二
- vc读写Excel文件的方法
- VB新手入门之三
- 在.NET2005里用Test做自动化测试(WinForm)
- 妈妈的,dnn又出问题了
- algorithm 修改性的序列操作源码
- [转]完美的loading-吐血整理!
- 一个好玩的图像效果
- javaScript高级应用(二)
- Asp.Net2.0中GridView的DataFormatString="{0:yyyy-MM-dd}"不起作用解决办法
- asp.net三种重定向方法的总结
- VB新手入门之四
- 40种网站设计常用技巧
- Windows下安装配置RadRails指南