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都被修改。

异常安全

如果两个字符串中的分配器比较相等,或者它们的分配器特性表明分配器应传播,则该函数永远不会引发异常(无抛出保证)。
否则,将导致未定义行为

另见