描述:
交换两个迭代器所指向的元素。
函数定义:
template< class ForwardIt1, class ForwardIt2 >
void iter_swap( ForwardIt1 a, ForwardIt2 b );
template< class ForwardIt1, class ForwardIt2 >
constexpr void iter_swap( ForwardIt1 a, ForwardIt2 b );
参数:
a, b - 指向要交换的元素的迭代器
可能的实现:
template<class ForwardIt1, class ForwardIt2>
constexpr void iter_swap(ForwardIt1 a, ForwardIt2 b) // C++20 起为 constexpr
{
using std::swap;
swap(*a, *b);
}
示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main(int argc, char **argv)
{
std::vector<int> vecInt1 = { 1,2,3 };
std::vector<int> vecInt2 = { 3,4 };
std::iter_swap(vecInt1.begin(), vecInt2.begin());
auto print = [](int nA) {std::cout << nA << " "; };
std::for_each(vecInt1.begin(), vecInt1.end(), print);//3 2 3
std::cout << std::endl;
std::for_each(vecInt2.begin(), vecInt2.end(), print);//1 4
return 0;
}