std::regex_iterator::operators (int)
STD::regex[医]迭代器::运算符++,运算符++%28 int%29
regex_iterator& operator++( | | (since C++11) |
---|---|---|
regex_iterator operator++(int | | (since C++11) |
在下一次匹配中推进迭代器。
首先,类型的局部变量BidirIt
构造的值为match[0].second
...
如果迭代器保持零长度匹配,并且start == end
,,,*this
设置为序列结束迭代器,则函数返回。
否则,如果迭代器保持零长度匹配,则运算符调用以下内容:
regex_search(start, end, match, *pregex, flags | regex_constants::match_not_null | regex_constants::match_continuous
如果调用返回true
函数返回。
否则,运算符将递增。start
并且继续下去,好像最近的比赛不是零长度的比赛。
如果最近的匹配不是零长度匹配,则运算符将flags
到flags | regex_constants::match_prev_avail
并调用以下内容:
regex_search(start, end, match, *pregex, flags
如果调用返回false
,迭代器集*this
对于序列结束迭代器,函数返回.
在所有情况下regex_search
回报true
,,,match.prefix().first
的值等于match[0].second
对于每个指数我
在范围内[0,
match.size()
%29
对此match[i].matched
是true
,,,match[i].position()
会回来distance(begin, match[i].first)
...
这意味着match[i].position()
从目标序列的开头给出偏移量,这通常与调用中传递的序列的偏移量不相同。regex_search
...
未具体说明实现是如何进行这些调整的。这意味着编译器可以调用特定于实现的搜索函数,在这种情况下,用户定义的专门化的regex_search
不会被召唤。
如果迭代器是序列结束迭代器,则行为是未定义的。
参数
%280%29
返回值
1%29*this
2%29迭代器的前一个值。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。