描述
它交換 a 和 b 的值。
聲明
以下是 std::swap 函數的聲明。
template <class T> void swap (T& a, T& b);
C++11
template <class T> void swap (T& a, T& b)
noexcept (is_nothrow_move_constructible<T>::value && is_nothrow_move_assignable<T>::value);
參數
a, b- 這是兩個對象。
返回值
空
異常
Basic guarantee- 如果類型 T 的構造或賦值拋出。
數據競爭
a 和 b 都被修改。
示例
在下麵的例子中解釋了 std::swap 函數。
#include <iostream>
#include <utility>
int main () {
int foo[4];
int bar[] = {100,200,300,400};
std::swap(foo,bar);
std::cout << "foo contains:";
for (int i:foo) std::cout << ' ' << i;
std::cout << '\n';
return 0;
}
讓我們編譯並運行上麵的程序,這將產生以下結果 -
foo contains:100 200 300 400
相關用法
- C++ utility rel_ops用法及代碼示例
- C++ utility piecewise_construct用法及代碼示例
- C++ utility move用法及代碼示例
- C++ utility make_pair用法及代碼示例
- C++ utility move_if_noexcept用法及代碼示例
- C++ utility forward用法及代碼示例
- C++ utility declval用法及代碼示例
- C++ unordered_map cbegin用法及代碼示例
- C++ unordered_set max_bucket_count()用法及代碼示例
- C++ unordered_multimap reserve()用法及代碼示例
- C++ unordered_multimap swap()用法及代碼示例
- C++ unordered_multiset get_allocator用法及代碼示例
- C++ unordered_set swap()用法及代碼示例
- C++ unordered_multimap rehash()用法及代碼示例
- C++ unordered_set equal_range用法及代碼示例
- C++ unordered_map rehash用法及代碼示例
- C++ unordered_map emplace_hint()用法及代碼示例
- C++ unordered_map key_eq()用法及代碼示例
- C++ unordered_multiset cend()用法及代碼示例
- C++ unordered_multimap get_allocator用法及代碼示例
注:本文由純淨天空篩選整理自 C++ Utility Library - swap Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。