iter_swap(std::move_iterator)
來自 cppreference.com
template< std::indirectly_swappable<Iter> Iter2 > friend constexpr void iter_swap( const move_iterator& x, |
(C++20 起) | |
交換兩個底層迭代器所指向的物件。
等價於 ranges::iter_swap(x.base(), y.base());。
此函式模板對普通的非限定或限定查詢不可見,僅當std::move_iterator<Iter>是實參的關聯類時,才能透過實參依賴查詢找到它。
目錄 |
[編輯] 引數
x, y | - | 要交換元素的移動迭代器 |
[編輯] 複雜度
常數時間。
[編輯] 異常
noexcept 規範:
noexcept(noexcept(ranges::iter_swap(x.base(), y.base())))
[編輯] 示例
執行此程式碼
#include <iostream> #include <iterator> #include <string> #include <vector> int main() { std::vector<std::string> p{"AA", "EE"}, q{"ⱯⱯ", "ƎƎ"}; std::move_iterator<std::vector<std::string>::iterator> x = std::make_move_iterator(p.begin()), y = std::make_move_iterator(q.begin()); std::cout << *x << ' ' << *y << '\n'; iter_swap(x, y); // ADL std::cout << *x << ' ' << *y << '\n'; }
輸出
AA ⱯⱯ ⱯⱯ AA
[編輯] 參閱
交換兩個物件的值 (函式模板) | |
交換兩個範圍的元素 (函式模板) | |
交換兩個迭代器所指向的元素 (函式模板) | |
(C++20) |
交換兩個可解引用物件所引用的值 (定製點物件) |
(C++20) |
交換兩個調整後的底層迭代器指向的物件 (函式模板) |