函数原型
templateinline void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right)
通过迭代器来完成元素的交换。
参数
_Left,_Right指向要交换的两个迭代器
#includeswap_ranges#include #include #include #include #include int main() { std::vector a{1, 2, 4, 5, 8, 10}; std::iter_swap(std::begin(a), std::begin(a) + 4); std::for_each(std::begin(a), std::end(a), [](int value) { std::cout << value << ", "; }); std::cout << std::endl; return -1; } //输出 8, 2, 4, 5, 1, 10,
函数原型
templateinline _FwdIt2 swap_ranges(const _FwdIt1 _First1, const _FwdIt1 _Last1, _FwdIt2 _First2)
first1 last1 第一个容器首、尾迭代器
first2 第二个迭代器首
#include#include #include #include #include #include int main() { std::vector a{ 3, 6, 4, 7, 8, 10 }; std::vector b{ 2, 1, 3, 4, 10 }; std::swap_ranges(std::begin(a), std::begin(a), std::begin(b)); std::for_each(std::begin(a), std::end(a), [](int value) { std::cout << value << ", "; }); std::cout << std::endl; std::for_each(std::begin(b), std::end(b), [](int value) { std::cout << value << ", "; }); std::cout << std::endl; std::vector c(a.size()); std::swap_ranges(std::begin(a), std::end(a), std::begin(c)); std::for_each(std::begin(a), std::end(a), [](int value) { std::cout << value << ", "; }); std::cout << std::endl; std::for_each(std::begin(c), std::end(c), [](int value) { std::cout << value << ", "; }); std::cout << std::endl; return -1; } //输出 3, 6, 4, 7, 8, 10, 2, 1, 3, 4, 10, 0, 0, 0, 0, 0, 0, 3, 6, 4, 7, 8, 10,



