Namespaces
Variants

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

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
std::sub_match
Member functions
Non-member functions
operator== operator!= operator<< operator<= operator> operator>= operator<=>
(until C++20) (until C++20) (until C++20) (until C++20) (until 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 起)
std::basic_string 进行比较
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 < /*BidirIt的值类型*/ < 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 < /*值类型*/ < 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 /*值类型*/ < BidirIt > * s ) ;
(21) (自 C++11 起)
template < class BidirIt >

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

const /*值类型*/ < BidirIt > * s ) ;
(22) (自 C++11 起)
(直至 C++20)
template < class BidirIt >

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

const /*值类型*/ < BidirIt > * s ) ;
(23) (自 C++11 起)
(直至 C++20)
template < class BidirIt >

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

const /*值类型*/ < BidirIt > * s ) ;
(24) (自 C++11 起)
(直至 C++20)
template < class BidirIt >

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

const /*值类型*/ < BidirIt > * s ) ;
(25) (自 C++11 起)
(直至 C++20)
template < class BidirIt >

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

const /*值类型*/ < 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 /*值类型为*/ < BidirIt > * s,

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

bool operator >= ( const /*值类型为*/ < 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 /*值类型*/ < BidirIt > & ch ) ;
(34) (自 C++11 起)
template < class BidirIt >

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

const /*值类型*/ < 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 /*值类型*/ < 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 /*值类型*/ < BidirIt > & ch ) ;
(39) (自 C++11 起)
(直至 C++20)
template < class BidirIt >

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

const /*值类型*/ < BidirIt > & ch ) ;
(40) (自 C++20 起)
template < class BidirIt >

bool operator == ( const /*值类型为*/ < BidirIt > & ch,

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

bool operator ! = ( const /*值类型*/ < BidirIt > & ch,

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

bool operator < ( const /*值类型*/ < 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 /*值类型*/ < BidirIt > & ch,

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

bool operator >= ( const /*值类型*/ < 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_match std::string 、C风格字符串或单个字符进行比较。

1-7) 直接比较两个 sub_match
8-20) 比较 sub_match std::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 < 类别类型  < BidirIt >>
( lhs. compare ( target ) <=> 0 )
不适用

注释

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

示例

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

DR 适用版本 发布行为 正确行为
LWG 2217 C++11 std::string 比较时,
compare() 的参数为 str. c_str ( )
参数应为
string_type ( str. data ( ) , str. size ( ) ) )

另请参阅

比较匹配的子序列(如果存在)
(公开成员函数)