std::iter_swap_C++中文网
| 定义于头文件 |
||
| template< class ForwardIt1, class ForwardIt2 > |
(C++20 前) | |
| template< class ForwardIt1, class ForwardIt2 > |
(C++20 起) | |
交换给定的迭代器所指向的元素的值。
参数
| a, b | - | 指向要交换的元素的迭代器 |
| 类型要求 | ||
-ForwardIt1, ForwardIt2 必须满足遗留向前迭代器 (LegacyForwardIterator) 的要求。
| ||
-*a, *b 必须满足可交换 (Swappable) 的要求。
| ||
返回值
(无)
复杂度
常数
可能的实现
template<class ForwardIt1, class ForwardIt2> constexpr void iter_swap(ForwardIt1 a, ForwardIt2 b) // C++20 起为 constexpr { using std::swap; swap(*a, *b); }
示例
下面是选择排序在 C++ 中的实现
输出:
Before sort: -7 6 2 4 -1 6 -9 -1 2 -5 10 -9 -5 -3 -5 -3 6 6 1 8 After sort: -9 -9 -7 -5 -5 -5 -3 -3 -1 -1 1 2 2 4 6 6 6 6 8 10