公共成员函数
<regex>

std::match_results::swap

void swap(match_results& mrs);
交换内容
match_results 对象中的内容与 mrs 的内容交换,后者是另一个相同类型的 match_results。 大小可能不同。

调用此成员函数后,此对象中的匹配项是调用之前 mrs 中的匹配项,mrs 的元素是此对象.

此函数交换对象之间指向数据的内部指针,而无需实际对其中包含的各个匹配项执行任何复制或移动操作,从而允许恒定时间执行,无论大小如何。

请注意,存在一个具有相同名称的全局算法函数 swap。 此全局函数针对 match_results 类型的参数重载,以具有与此成员函数相同的行为。

参数

mrs
另一个与此对象相同类型的 match_results 对象。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// match_results::swap
// - using smatch, a standard alias of match_results<string::iterator>
#include <iostream>
#include <string>
#include <regex>

int main ()
{
  std::string s ("There is a needle in this haystack.");
  std::smatch m1,m2;

  std::regex_search ( s, m1, std::regex("needle") );
  std::regex_search ( s, m2, std::regex("haystack") );

  m1.swap(m2);

  std::cout << m1.format("m1 contains [$0].") << std::endl;
  std::cout << m2.format("m2 contains [$0].") << std::endl;

  return 0;
}

输出
m1 contains [haystack].
m2 contains [needle].


另见