std::regex_traits::transform

来自cppreference.com
< cpp‎ | regex‎ | regex traits
template< class ForwardIt >
string_type transform( ForwardIt first, ForwardIt last) const;

获得字符序列 [first, last) 的排序关键,满足若排序关键以 operator< 小于另一排序关键,则在当前感染的 locale 的对照顺序中,产生第一个排序关键的字符序列比产生第二个排序关键的字符序列先来。

例如,在设置 regex 标志 std::regex_constants::collate 时,若 traits.transform("a") <= traits.transform(c1) <= traits.transform("b") 则序列 [a-b] 会匹配某字符 c1 。注意此函数接收字符序列为参数,以适应定义为如 [[.ae.]-d] 的范围。

std::regex_traits 的标准库特化返回 std::use_facet<std::collate<CharT>>(getloc()).transform(&*str.begin(), &*str.begin() + str.length()) ,对于某个构造为 string_type str(first, last) 的临时字符串 str

[编辑] 参数

first, last - 一对向前迭代器 (ForwardIterator) ,确定要比较的字符序列
类型要求
-
ForwardIt 必须满足 ForwardIterator 的要求。

[编辑] 返回值

当前感染的 locale 中字符序列 [first, last) 的对照关键。

[编辑] 示例