类模板
<regex>

std::sub_match

template <class BidirectionalIterator>class sub_match : public pair <BidirectionalIterator, BidirectionalIterator>;
子表达式匹配
存储由 regex_matchregex_search 的正则表达式算法,或由 正则表达式迭代器regex_iteratorregex_token_iterator)填充的 match_results 对象中的各个匹配项。这些匹配项是字符序列。但是此类对象本身并不存储字符序列,而是派生自 pair,用于保存指向序列的起始字符和 尾后 字符的 双向迭代器 对,并提供对该序列的引用语义。

此类向从 pair 继承的数据添加了一个公共成员变量,类型为

bool,名为matched。此成员保存对象的状态(“已匹配”或“未匹配”)。使用其默认构造函数构造的对象将把此成员设置为false,而作为 match_results 对象一部分的对象将把此成员设置为true。此类对象可以转换为 string 对象(或相应的.

basic_string类型),并且在比较时表现得像字符串对象。它们还有一个 length 成员,其行为类似于其 string 对应项。在此基本类中有四种实例化存在于标准头文件中

对于最常见的情况<regex>BidirectionalIterator
1
2
3
4
typedef sub_match<const char*> csub_match;
typedef sub_match<const wchar_t*> wcsub_match;
typedef sub_match<string::const_iterator> ssub_match;
typedef sub_match<wstring::const_iterator> wssub_match;


模板参数

指向字符序列的 双向迭代器类型
模板实例化

sub_match for string literals (class)


成员类型

以下别名是sub_match:

成员类型定义说明
iterator_traits<BidirectionalIterator>::value_type序列中字符的类型。string_type
basic_string<value_type>字符类型的 string 类型。iterator
模板参数指向字符序列的 双向迭代器类型difference_type
iterator_traits<BidirectionalIterator>::size_typefirst_type相同,通常与 ptrdiff_t 一样
pair 相同(继承自 pair)。指向字符序列的 双向迭代器类型(inherited from pair).模板参数second_type
Construct sub_match (public member function)指向字符序列的 双向迭代器类型(inherited from pair).模板参数second_type

成员函数


swapfrom pair.