Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::locale::operator()

      From cppreference.com
      <cpp‎ |locale‎ |locale
       
       
       
      Localization library
       
       
      template<class CharT,class Traits,class Alloc>

      bool operator()(conststd::basic_string<CharT,Traits,Alloc>& s1,

                       conststd::basic_string<CharT,Traits,Alloc>& s2)const;

      Compares two string argumentss1 ands2 according to the lexicographic comparison rules defined by this locale'sstd::collate<CharT> facet. This operator allows any locale object that has a collate facet to be used as a binary predicate in the standard algorithms (such asstd::sort) and ordered containers (such asstd::set).

      Contents

      [edit]Parameters

      s1 - the first string to compare
      s2 - the second string to compare

      [edit]Return value

      true ifs1 is lexicographically less thans2,false otherwise.

      [edit]Possible implementation

      template<class CharT,class Traits,class Alloc>bool operator()(conststd::basic_string<CharT,Traits,Alloc>& s1,conststd::basic_string<CharT,Traits,Alloc>& s2)const{returnstd::use_facet<std::collate<CharT>>(*this).compare(               s1.data(), s1.data()+ s1.size(),               s2.data(), s2.data()+ s2.size())<0;}

      [edit]Example

      Avector ofstrings can be sorted according to a non-default locale by using the locale object as comparator:

      Run this code
      #include <algorithm>#include <cassert>#include <locale>#include <string>#include <vector> int main(){std::vector<std::wstring> v={L"жил", L"был", L"пёс"};std::sort(v.begin(), v.end(),std::locale("ru_RU.UTF8"));assert(v[0]== L"был");assert(v[1]== L"жил");assert(v[2]== L"пёс");}

      [edit]See also

      defines lexicographical comparison and hashing of strings
      (class template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/locale/locale/operator()&oldid=177158"

      [8]ページ先頭

      ©2009-2025 Movatter.jp