STL swap_ranges函数

STL swap_ranges函数算法

STL 中的 swap_ranges() 函数用于从 First2 开始的位置开始和 [First1,last1) 中的元素开始交换,返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。

STL swap_ranges函数详解

头文件

#include <algorithm>

语法

template<class ForwardIterator1, class ForwardIterator2> ForwardIterator2 swap_ranges (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2);

参数

参数 描述
first1 输入迭代器
last1 输入迭代器
first2 输入迭代器

说明

返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。

案例

STL swap_ranges函数

使用 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,如下图所示:

46_STL swap_ranges函数.png

我们使用了 swap_ranges 函数,实现了集合中元素的交换。

STL swap_ranges函数总结

STL 中的 swap_ranges() 函数用于从 First2 开始的位置开始和 [First1,last1) 中的元素开始交换,返回值是交换后的第二个区间中元素的最后一个元素的迭代器对象。