public member function
<regex>

std::regex_traits::transform

template <class ForwardIterator>  string_type transform (ForwardIterator first, ForwardIterator last) const;
转换为字符串
返回一个包含排序键的字符串,该排序键使用区域设置敏感信息表示 firstlast 之间的字符序列。

对于标准 regex_traits,使用 字符串构造函数,并在其上应用适当的 collate::transform facet。
1
2
3
4
5
template <class ForwardIterator>
  string_type transform (ForwardIterator first, ForwardIterator last) const {
    string_type s (first,last);  
    return use_facet< collate<char_type> >(getloc()).transform(&*s.begin(),&*s.begin()+s.length());
  }

当正则表达式需要匹配一个范围时(例如,[a-z])与具有特定于区域设置信息的字符匹配时,会调用此函数:通常,为了将字符x与范围[a-z]进行比较,会通过检查是否a<=x && x<=z来执行词典比较。 当 regex 对象将 collate 作为语法选项时,比较中涉及的所有字符和排序元素首先使用此函数进行转换。

该函数采用范围而不是单个字符,以适应多字符排序元素。

自定义特征类可以定义不同的转换,从而产生在词典比较时以不同方式排序的字符串值。

参数

first, last
指向字符序列中初始和最终位置的前向迭代器。使用的范围是[first,last),其中包括firstlast之间的所有字符,包括first指向的字符,但不包括last指向的字符。

返回值

字符序列的字符串转换。
string_type是一个成员类型,是其相应字符串类型的别名。 在 regex_traits 中,它是basic_string的别名,具有相同的模板参数(例如,string 对于regex_traits<char>).

另见