function template
<string>

std::swap (basic_string)

template <class charT, class traits, class Alloc>  void swap (basic_string<charT,traits,Alloc>& x,             basic_string<charT,traits,Alloc>& y);
交换两个字符串的值
交换basic_string对象xy的值,使得调用此函数后,x的值是调用之前y的值,y的值是x的值。

这是泛型算法swap的重载,它通过相互转移对其内部数据的拥有权来提高其性能(即,字符串交换对其数据的引用,而无需实际复制字符):它的行为就像x.swap(y)被调用。

参数

x,y
相同类型的basic_string对象(即,具有相同的模板参数,charT, 特性 (traits)Alloc).

返回值



示例

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';

  swap (buyer,seller);

  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


复杂度

常量。

迭代器有效性

xy相关的任何迭代器、指针和引用都可能无效。

数据竞争

两个对象,xy,都被修改。

异常安全

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

另见