std::swap
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <algorithm> 中定义
在头文件 <utility> 中定义 |
(至 C++11) (C++11 起) |
|
template< class T > void swap( T& a, T& b ); |
(1) | |
template< class T2, size_t N > void swap( T2 (&a)[N], T2 (&b)[N]); |
(2) | (C++11 起) |
交易给定的值.
1)
2)
目录 |
[编辑] 参数
a, b | - | 的值,以进行交换
|
类型要求 | ||
-T 必须满足 MoveAssignable 和 MoveConstructible 的要求。
| ||
-T2 必须满足 Swappable 的要求。
|
[编辑] 返回值
(无)
[编辑] 例外
1)noexcept specification: (C++11 起)
2)
noexcept(noexcept( std::is_nothrow_move_constructible<T>::value && |
||
[编辑] 复杂度
1)常数
2) 线性N
[编辑] 专业化
这两个自定义专业的std::swap算法和过载是允许的,但一般的重载函数模板的专业首选,因为是不允许的模板类。库函数时,总是使用用户提供的重载交换,如果他们被发现的参数相关的查找(每
Swappable
概念),.原文:
Both custom specializations and overloads of the std::swap algorithm are allowed, but the overloads are generally preferred since specializations of a function template aren't allowed for template classes. Library functions always use the user-provided overloads when swapping, if they are found by argument-dependent lookup (as per
Swappable
concept).以下重载已经提供的标准库
原文:
The following overloads are already provided by the standard library:
(C++11) |
特化std::swap算法 (函数模板) |
(C++11) |
特化std::swap算法 (函数模板) |
(C++11) |
专业的std::swap算法 原文: specializes the std::swap algorithm (函数模板) |
(C++11) |
特化std::swap算法 (函数模板) |
(C++11) |
专业的std::swap算法 原文: specializes the std::swap algorithm (函数模板) |
(C++11) |
专业的std::swap算法 原文: specializes the std::swap algorithm (函数模板) |
专业的std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
特化std::swap算法 (函数模板) | |
(C++11) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
专业的std::swap算法 (函数模板) | |
专业的std::swap算法 (函数模板) | |
专业的std::swap算法 (函数模板) | |
(C++11) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) | |
(C++11) |
专业的std::swap算法 (函数模板) |
(C++11) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) |
(C++11) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) |
专业的 std::swap() 算法原文: specializes the std::swap() algorithm(函数模板) |
[编辑] 示例
本章尚未完成 原因:暂无示例 |
[编辑] 另请参阅
交换两个迭代器所指向的元素 (函数模板) | |
交换两个范围的元素 (函数模板) |