std::swap

来自cppreference.com
< cpp‎ | algorithm

 
 
算法库
执行策略 (C++17)
不修改的序列操作
(C++11)
(C++11)
(C++11)
(C++17)
修改的序列操作
未初始化存储上的操作
划分操作
排序操作
(C++11)
二分查找操作
集合操作(在已排序范围上)
堆操作
(C++11)
最小/最大操作
(C++11)
(C++17)

重排
数值操作
C 库
 
定义于头文件 <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 起)
交易给定的值.
原文:
Exchanges the given values.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
1)
交换价值ab.
原文:
Swaps the values a and b.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
2)
交换阵列ab。实际上调用std::swap_ranges(a, a+N, b).
原文:
Swaps the arrays a and b. In effect calls std::swap_ranges(a, a+N, b).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

a, b -
的值,以进行交换
原文:
the values to be swapped
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
类型要求
-
T必须满足 MoveAssignable MoveConstructible 的要求。
-
T2必须满足 Swappable 的要求。

[编辑] 返回值

(无)
原文:
(none)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 例外

1)
noexcept规定:  (C++11 起)
noexcept(noexcept(

    std::is_nothrow_move_constructible<T>::value &&
    std::is_nothrow_move_assignable<T>::value

))
2)
noexcept规定:  (C++11 起)
noexcept(noexcept(swap(*a, *b)))

[编辑] 复杂度

1)
常数
原文:
Constant
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
2)
线性N
原文:
Linear in N
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 专业化

这两个自定义专业的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).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
以下重载已经提供的标准库
原文:
The following overloads are already provided by the standard library:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
特化std::swap算法
(函数模板) [编辑]
特化的std::swap算法
(函数模板) [编辑]
特化的std::swap算法
(函数模板) [编辑]
特化的std::swap算法
(函数模板) [编辑]
特化的std::swap算法
(函数模板) [编辑]
特化的std::swap算法
(函数模板) [编辑]
特化的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [编辑]
特化的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()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
特化的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [编辑]
特化的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [编辑]
特化的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [编辑]
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [编辑]
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)
专业的std::swap()算法
原文:
specializes the std::swap() algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板)

[编辑] 示例

[编辑] 另请参阅

交换两个迭代器所指向的元素
(函数模板) [编辑]
交换两个范围的元素
(函数模板) [编辑]