STL 中的 swap_ranges() 函数用于从 First2 开始的位置开始和 [First1,last1) 中的元素开始交换,返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。
#include <algorithm>
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges (ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2);
参数 | 描述 |
---|---|
first1 | 输入迭代器 |
last1 | 输入迭代器 |
first2 | 输入迭代器 |
返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。
使用 STL swap_ranges 函数交换元素
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
std::cout << "嗨客网(www.haicoder.net)\n" << std::endl;
std::vector<int> foo (5, 11);
std::vector<int> bar (5, 99);
std::swap_ranges(foo.begin()+1, foo.end()-1, bar.begin());
std::cout << "foo contains:";
for (std::vector<int>::iterator it=foo.begin(); it!=foo.end(); ++it)
{
std::cout << ' ' << *it;
}
std::cout << '\n';
std::cout << "bar contains:";
for (std::vector<int>::iterator it=bar.begin(); it!=bar.end(); ++it)
{
std::cout << ' ' << *it;
}
std::cout << '\n';
return 0;
}
我们在 Linux 下使用 g++ 进行编译,具体命令如下:
g++ swap_ranges.cpp -std=c++11
编译后,我们直接运行生成的二进制文件 a.out
,如下图所示:
我们使用了 swap_ranges 函数,实现了集合中元素的交换。
STL 中的 swap_ranges() 函数用于从 First2 开始的位置开始和 [First1,last1) 中的元素开始交换,返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。