命名空间
变体
操作

operator==, !=(std::match_results)

来自 cppreference.com
< cpp‎ | regex‎ | match results
在头文件 <regex> 中定义
template< class BidirIt, class Alloc >

bool operator==( match_results<BidirIt,Alloc>& lhs,

                 match_results<BidirIt,Alloc>& rhs );
(1) (从 C++11 开始)
template< class BidirIt, class Alloc >

bool operator!=( match_results<BidirIt,Alloc>& lhs,

                 match_results<BidirIt,Alloc>& rhs );
(2) (从 C++11 开始)
(直到 C++20)

比较两个 match_results 对象。

如果满足以下条件,则两个 match_results 相等:

  • 两个对象均不为 ready
  • 两个匹配结果均为 ready,且满足以下条件:
  • lhs.empty()rhs.empty()
  • !lhs.empty()!rhs.empty(),且满足以下条件:
  • lhs.prefix() == rhs.prefix()
  • lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin())
  • lhs.suffix() == rhs.suffix()
1) 检查 lhsrhs 是否相等。
2) 检查 lhsrhs 是否不相等。

!= 运算符是 operator== 合成的

(从 C++20 开始)

内容

[编辑] 参数

lhs, rhs - 要比较的匹配结果
类型要求
-
BidirIt 必须满足 LegacyBidirectionalIterator 的要求。
-
Alloc 必须满足 Allocator 的要求。

[编辑] 返回值

1) 如果 lhsrhs 相等,则为 true,否则为 false
2) 如果 lhsrhs 不相等,则为 true,否则为 false

[编辑] 异常

可能会抛出实现定义的异常。

[编辑] 示例