function template
<regex>

std::swap (match_results)

template <class BidirectionalIterator, class Alloc>  void swap ( match_results<BidirectionalIterator,Alloc>& lhs,              match_results<BidirectionalIterator,Alloc>& lhs);
交换两个 match_result 对象的内容
lhs 的内容与 rhs 的内容进行交换。 两个容器对象必须是相同的类型(相同的模板参数),尽管大小可能不同。

调用此成员函数后,lhs 中的匹配项是调用之前 rhs 中的匹配项,而 rhs 的匹配项是 lhs 中的匹配项。

这是通用算法 swap 的一个特化,它通过交换指向数据的内部指针来提高其性能,而无需实际对单个元素执行任何复制或移动操作。

参数

lhs,rhs
match_results 容器(分别在运算符的左侧和右侧),两者都具有相同的模板参数 (BidirectionalIteratorAlloc).

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// swap match_results
// - 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") );

  swap(m1,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].


另见