STL之swap_ranges()算法【交换两区间内的元素】

该代码示例展示了如何使用swap_ranges函数交换两个容器(如vector和deque)中对应位置的元素。第一次调用交换整个区间,第二次调用则交换了vector的一部分元素。algostuff.h包含了一些算法库。
ForwardIterator2 swap_ranges(ForwardIterator1 beg1,ForwardIterator1 End1,
                            ForwardIterator2 beg2) 
  • 把区间1[ ForwardIterator1 beg1,ForwardIterator1 End1)和以ForwardIterator2 beg2为起始的区间2内的对应元素互换
  • 返回第二区间中”最后一个被交换元素“的下一个位置
  • 必须确保目标区间有足够空间
  • 两区间不得重叠
#include"algostuff.h"
using namespace std;
int main()
{
	vector<int> col1;
	deque<int> col2;

	INSERT_ELEMENTS(col1, 1, 9);
	INSERT_ELEMENTS(col2, 11, 23);

	PRINT_ELEMENTS(col1, "col1: ");
	PRINT_ELEMENTS(col2, "col2: ");

	//swap elements
	swap_ranges(col1.begin(), col1.end(), col2.begin());
	PRINT_ELEMENTS(col1, "col1: ");
	PRINT_ELEMENTS(col2, "col2: ");

	swap_ranges(col1.begin(), col1.begin()+3, col1.rbegin());
	PRINT_ELEMENTS(col1, "col1: ");
}

第一次调用swap_ranges()是将col1和col2中对应位置的元素交换,col2中剩余位置处的元素保持不变。

第二次调用swap_ranges()是将col1的前三个元素和后三个元素交换

文中涉及的 algostuff.h

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值