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>).

另見