std::swap
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    | 
   | 
  该页由英文版wiki使用Google Translate机器翻译而来。 
 该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里.  | 
(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规定:  (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算法   (函数模板)  | 
|    (C++11)  | 
   特化的std::swap算法   (函数模板)  | 
|    (C++11)  | 
   特化的std::swap算法   (函数模板)  | 
|    (C++11)  | 
   特化的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算法  (函数模板)  | |
|   特化的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(函数模板)  | 
[编辑] 示例
| 本章尚未完成 原因:暂无示例  | 
[编辑] 另请参阅
|    交换两个迭代器所指向的元素   (函数模板)  | |
|    交换两个范围的元素   (函数模板)  |