swap_ranges详解
来源:互联网 发布:淘宝模版在线制作 编辑:程序博客网 时间:2024/05/15 23:50
swap_ranges:交换两个区间的元素,如果两个区间是容器的所有元素.应该使用swap.
//TEMPLATE FUNCTION swap_ranges
template<class_FwdIt1,
class_FwdIt2> inline
_FwdIt2 _Swap_ranges(_FwdIt1 _First1,_FwdIt1 _Last1,
_FwdIt2 _Dest)
{ // swap [_First1, _Last1) with [_Dest, ...)
for (; _First1!= _Last1; ++_First1, ++_Dest)
_STD iter_swap(_First1,_Dest);
return(_Dest);
}
//TEMPLATE FUNCTION iter_swap
template<class_FwdIt1,
class_FwdIt2> inline
voiditer_swap(_FwdIt1 _Left, _FwdIt2 _Right)
{ // swap *_Left and *_Right
swap(*_Left, *_Right);
}
//TEMPLATE FUNCTION swap (from <algorithm>)
template<class _Ty>inline
voidswap(_Ty& _Left, _Ty& _Right)
{ // exchange values stored at _Left and _Right
_Ty _Tmp = _Move(_Left);
_Left = _Move(_Right);
_Right = _Move(_Tmp);
}
函数的实现也很简单.这里不过多赘述.
举例:
int main()
{
vector<int>vecInt;
for ( int i = 0;i < 10;++ i)
{
vecInt.push_back( i );
}
vector<int>vecIntOther;
transform(vecInt.begin(),vecInt.end(),back_inserter( vecIntOther ),add10<int> );
cout<<"vecIntvalue:\n";
copy(vecIntOther.begin(),vecIntOther.end(),ostream_iterator<int>( cout,"" ) );
cout<<"\nvecIntOthervalue: \n";
copy(vecInt.begin(),vecInt.end(),ostream_iterator<int>(cout," " ) );
cout<<"\nswap_rang:\n";
swap_ranges(vecInt.begin(),vecInt.end(),vecIntOther.begin() );
cout<<"vecIntvalue:\n";
copy(vecIntOther.begin(),vecIntOther.end(),ostream_iterator<int>( cout,"" ) );
cout<<"\nvecIntOthervalue: \n";
copy(vecInt.begin(),vecInt.end(),ostream_iterator<int>(cout," " ) );
system( "pause");
return0;
}
- swap_ranges详解
- swap_ranges
- swap_ranges算法(STL)
- swap_ranges和transform
- STL 之swap, iter_swap, swap_ranges
- STL 之swap, iter_swap, swap_ranges
- STL_算法_交换(swap_ranges)
- STL algorithm算法swap,swap_ranges(56)
- c++ stl 数据交换算法swap_ranges
- 简单的程序诠释C++ STL算法系列之十七:swap_ranges
- 详解
- 详解
- 详解
- 详解
- &,&&,|,||详解
- 详解
- Scala详解--------基础知识详解
- Spring详解-----------事务详解
- 利用c#制作托盘程序,并禁止多个应用实例运行
- 2012年5月TIOBE编程语言排行榜发布:C继续领跑
- 同一个tomcat多个web应用共享session
- transform详解
- Android ApiDemos示例解析(1):创建ApiDemo示例
- swap_ranges详解
- 黑马程序员——反射
- fill详解
- nand flash 与nor flash区别
- generate详解
- tomcat的多域名、虚拟主机配置
- 游戏程序员的学习资料
- RedHat Linux 5 DNS服务器配置详解
- Android ApiDemos示例解析(2): SimpleAdapter,ListActivity,PackageManager