类模板regex_iterator是一种迭代器适配器。regex_iterator用于描述序列中正则表达式所涉及的所有迭代器序列。迭代器regex_iterator使用regex_search()找到序列中连续的正则表达式匹配。迭代器被构造之后,每次operator++被使用时,迭代器会找到并存储match_result类型的值。若达到序列的末尾,则迭代器变成等于序列末尾。默认的构造器构造序列尾端迭代器对象,只有合法的迭代器才可用于指向末尾位置。对序列末尾进行operator∗的结果是不确定的。对于任何其他迭代器,使用operator∗之后会返回一个match_result类型的常量。同样,在序列末尾时,运算符operator- >的结果也是不确定的,对于其他迭代器的值,会返回一个match_result类型指针。另外,不可能存储内容至迭代器中。两个序列末端的迭代器总是相等的。序列末尾的迭代器是不等于非序列尾端的迭代器的。当两个非序列尾端迭代器使用相同参数构造时,这两个非序列尾端的迭代器是可以相等的。
迭代器模板的声明也是很复杂的,包含如下诸多内容:
若要迭代所有正则搜索到的匹配表达式,则可以使用正则迭代器。这些迭代器是regex_it-erator< >类型,具有通常的string类型或者字符序列类型的实例,并且具有前缀s、c或wc。
其实对于迭代器而言,最常用的成员函数是构造函数、两个比较运算符(==,!=)、引用运算(∗,->)以及自加函数(++)。
构造函数有3种形式,第3种是利用现有的迭代器构造新的迭代器。
其作用是构造一个序列尾端迭代器。(www.xing528.com)
其作用是:在序列[a,b]中搜索re,然后确定其位置,并返回其迭代器。
例17-10
例17-10的执行效果如图17-8所示。
图17-8 regex_iterator类型迭代器的用法
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。