• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <regex>

    std::regex_traits::transform

    template <class ForwardIterator>
    string_type transform(ForwardIterator first, ForwardIterator last) const;
    

    概要

    与えられた文字範囲[first, last)を、並べ替えのキーとして使用する、文字のシーケンスに変換する。結果のシーケンスは、ロケールごとの照合順序となる。

    戻り値

    string_type str(first, last);
    return use_facet<collate<char_type>>(getloc())
             .transform(str.data(), str.data() + str.length());
    

    #include <regex>
    #include <cassert>
    
    int main()
    {
      std::regex_traits<char> traits;
    
      const std::string a = "a";
      const std::string b = "B";
    
      {
        const std::string key_a = traits.transform(a.begin(), a.end());
        const std::string key_b = traits.transform(b.begin(), b.end());
        assert(key_a > key_b);
      }
      {
        // Latin2
        traits.imbue(std::locale("cs_CZ.ISO8859-2"));
        const std::string key_a = traits.transform(a.begin(), a.end());
        const std::string key_b = traits.transform(b.begin(), b.end());
        assert(key_a < key_b);
      }
    }
    

    出力

    バージョン

    言語

    • C++11

    処理系

    • Clang: 3.0 , 3.1 , 3.2 , 3.3 , 3.4 , 3.5 , 3.6
    • GCC: 4.9.0 , 4.9.1 , 4.9.2 , 5.0.0
    • ICC: ??
    • Visual C++: ??

    参照