public member function
<string>

std::basic_string::swap

void swap (basic_string& str);
交換字串值
將容器的內容與str的內容交換,str是另一個相同型別的basic_string物件。長度可能不同。

呼叫此成員函式後,該物件的值是呼叫前str的值,str的值是呼叫前該物件的值。

請注意,存在一個具有相同名稱的非成員函式,swap,過載了該演算法,並進行了最佳化,其行為類似於此成員函式。

關於分配器沒有具體說明。
容器的分配器是否也被交換未定義,除非在適當的分配器特性明確表明它們應傳播的情況下。

引數

str
另一個相同型別的basic_string物件(即,使用相同的模板引數例項化,charT, 特性 (traits)Alloc),其值與此basic_string的值交換。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// swap strings
#include <iostream>
#include <string>

main ()
{
  std::string buyer ("money");
  std::string seller ("goods");

  std::cout << "Before the swap, buyer has " << buyer;
  std::cout << " and seller has " << seller << '\n';

  seller.swap (buyer);

  std::cout << " After the swap, buyer has " << buyer;
  std::cout << " and seller has " << seller << '\n';

  return 0;
}

輸出
Before the swap, buyer has money and seller has goods
 After the swap, buyer has goods and seller has money


複雜度

常量。

迭代器有效性

與此物件和str相關的任何迭代器、指標和引用都可能無效。

資料競爭

物件和str都被修改。

異常安全

如果兩個字串中的分配器比較相等,或者它們的分配器特性表明分配器應傳播,則該函式永遠不會引發異常(無丟擲保證)。
否則,將導致未定義行為

另見