On this page
std::locale::operator()
|
Compares two string arguments s1
and s2
according to the lexicographic comparison rules defined by this locale's std::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 as std::sort
) and ordered containers (such as std::set
).
Parameters
s1 | - | the first string to compare |
s2 | - | the second string to compare |
Return value
true
if s1
is lexicographically less than s2
, false
otherwise.
Possible implementation
|
Example
A vector
of string
s can be sorted according to a non-default locale by using the locale object as comparator:
#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"пёс");
}
See also
defines lexicographical comparison and hashing of strings (class template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/locale/operator()