命名空间
变体
操作

operator==,!=,<,<=,>,>=,<=>(std::sub_match)

来自 cppreference.cn
< cpp‎ | regex‎ | sub_match
 
 
 
正则表达式库
(C++11)
算法
迭代器
异常
特性
常量
(C++11)
正则表达式语法
 
std::sub_match
成员函数
非成员函数
operator==operator!=operator<operator<=operator>operator>=operator<=>
(直至 C++20)(直至 C++20)(直至 C++20)(直至 C++20)(直至 C++20)(C++20 起)
 
在头文件 <regex> 中定义
直接比较
template< class BidirIt >

bool operator== ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(1) (C++11 起)
template< class BidirIt >

bool operator!= ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(2) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<  ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(3) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<= ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(4) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>  ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(5) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>= ( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(6) (C++11 起)
(C++20 前)
template< class BidirIt >

auto operator<=>( const std::sub_match<BidirIt>& lhs,

                  const std::sub_match<BidirIt>& rhs );
(7) (C++20 起)
template< class BidirIt, class Traits, class Alloc >

bool operator== ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(8) (C++11 起)
template< class BidirIt, class Traits, class Alloc >

bool operator!= ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(9) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator<  ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(10) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator<= ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(11) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator>  ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(12) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator>= ( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(13) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

auto operator<=>( const std::sub_match<BidirIt>& lhs,
                  const std::basic_string</*value-type-of*/<BidirIt>,

                                          Traits, Alloc>& str );
(14) (C++20 起)
template< class BidirIt, class Traits, class Alloc >

bool operator== ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(15) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator!= ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(16) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator<  ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(17) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator<= ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(18) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator>  ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(19) (C++11 起)
(C++20 前)
template< class BidirIt, class Traits, class Alloc >

bool operator>= ( const std::basic_string</*value-type-of*/<BidirIt>,
                                          Traits, Alloc>& str,

                  const std::sub_match<BidirIt>& rhs );
(20) (C++11 起)
(C++20 前)
与 C 风格字符串比较
template< class BidirIt >

bool operator== ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(21) (C++11 起)
template< class BidirIt >

bool operator!= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(22) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<  ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(23) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(24) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>  ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(25) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(26) (C++11 起)
(C++20 前)
template< class BidirIt >

auto operator<=>( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>* s );
(27) (C++20 起)
template< class BidirIt >

bool operator== ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(28) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator!= ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(29) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<  ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(30) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<= ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(31) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>  ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(32) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>= ( const /*value-type-of*/<BidirIt>* s,

                  const std::sub_match<BidirIt>& rhs );
(33) (C++11 起)
(C++20 前)
与单个字符比较
template< class BidirIt >

bool operator== ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(34) (C++11 起)
template< class BidirIt >

bool operator!= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(35) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<  ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(36) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(37) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>  ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(38) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>= ( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(39) (C++11 起)
(C++20 前)
template< class BidirIt >

auto operator<=>( const std::sub_match<BidirIt>& lhs,

                  const /*value-type-of*/<BidirIt>& ch );
(40) (C++20 起)
template< class BidirIt >

bool operator== ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(41) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator!= ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(42) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<  ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(43) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator<= ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(44) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>  ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(45) (C++11 起)
(C++20 前)
template< class BidirIt >

bool operator>= ( const /*value-type-of*/<BidirIt>& ch,

                  const std::sub_match<BidirIt>& rhs );
(46) (C++11 起)
(C++20 前)
辅助类型别名
template< class BidirIt >

using /*value-type-of*/ =

    typename std::iterator_traits<BidirIt>::value_type;
(47) (仅作说明*)
template< class BidirIt >

using /*cat-type-of*/ =
    std::compare_three_way_result_t

        <std::basic_string</*value-type-of*/<BidirIt>>>;
(48) (C++20 起)
(仅作说明*)

比较 sub_match 与另一个 sub_matchstd::string、C 风格字符串或单个字符。

1-7) 直接比较两个 sub_match
8-20) 比较 sub_matchstd::basic_string
21-33) 比较 sub_match 与 C 风格字符串。
34-46) 比较 sub_match 与单个字符。

<<=>>=!= 运算符分别从 operator<=>operator== 合成

(C++20 起)
47) value-type-of <BidirIt>BidirIt值类型
48) cat-type-of <BidirIt>std::sub_match<BidirIt> 的三向比较结果类型。

目录

[编辑] 参数

lhs, rhs - 要比较的 sub_match
str - 要比较的 std::basic_string
s - 指向要比较的 C 风格字符串的指针
ch - 要比较的字符

[编辑] 返回值

target 为下列值

1-7) rhs
8-20) typename std::sub_match<BidirIt>::string_type(str.data(), str.size())
21-33) s
34-46) typename std::sub_match<BidirIt>::string_type(1, ch)

返回值定义如下:

 运算符  返回值
重载 (1-14,21-27,34-40)
(带参数 lhs 的重载)
      重载 (15-20,28-33,41-46)      
(不带参数 lhs 的重载)
== lhs.compare(target) == 0 rhs.compare(target) == 0
!= lhs.compare(target) != 0 rhs.compare(target) != 0
< lhs.compare(target) < 0 rhs.compare(target) > 0
<= lhs.compare(target) <= 0 rhs.compare(target) >= 0
> lhs.compare(target) > 0 rhs.compare(target) < 0
>= lhs.compare(target) >= 0 rhs.compare(target) <= 0
<=>  static_cast<cat-type-of <BidirIt>>
    (lhs.compare(target) <=> 0)
 
不适用

[编辑] 注意

operator<=> 的返回类型保证为比较类别类型。若 value-type-of <BidirIt>charwchar_tchar8_tchar16_tchar32_t,则 operator<=> 的返回类型是 std::strong_ordering

[编辑] 示例

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 2217 C++11 对于与 std::string 的比较,compare()
参数为 str.c_str()
参数为
string_type(str.data(), str.size()))

[编辑] 参阅

比较匹配的子序列(若有)
(public member function) [编辑]