std:: collate
|
Definido en el encabezado
<locale>
|
||
|
template
<
class
CharT
>
class collate ; |
||
La clase
std::collate
encapsula la comparación (colación) y el hashing de cadenas específicos de la configuración regional. Esta faceta es utilizada por
std::basic_regex
y puede aplicarse, mediante
std::locale::operator()
, directamente a todos los algoritmos estándar que esperan un predicado de comparación de cadenas.
Diagrama de herencia
Contenidos |
Especializaciones
La biblioteca estándar garantiza proporcionar las siguientes especializaciones (estas deben ser implementadas por cualquier objeto de configuración regional ):
|
Definido en el encabezado
<locale>
|
|
| std :: collate < char > | implementa el ordenamiento lexicográfico de cadenas de bytes |
| std :: collate < wchar_t > | implementa el ordenamiento lexicográfico de cadenas anchas |
Tipos anidados
| Tipo | Definición |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
Miembros de datos
| Miembro | Descripción |
std::locale::id
id
[static]
|
el identificador del facet |
Funciones miembro
construye un nuevo facet
collate
(función miembro pública) |
|
destruye un facet
collate
(función miembro protegida) |
|
invoca
do_compare
(función miembro pública) |
|
invoca
do_transform
(función miembro pública) |
|
invoca
do_hash
(función miembro pública) |
Funciones miembro protegidas
|
[virtual]
|
compara dos cadenas usando las reglas de intercalación de esta faceta
(función miembro protegida virtual) |
|
[virtual]
|
transforma una cadena para que la intercalación pueda ser reemplazada por comparación
(función miembro protegida virtual) |
|
[virtual]
|
genera un valor hash entero usando las reglas de intercalación de esta faceta
(función miembro protegida virtual) |
Ejemplo
#include <algorithm> #include <iostream> #include <locale> #include <string> #include <vector> int main() { std::locale::global(std::locale("en_US.utf8")); std::wcout.imbue(std::locale("")); std::vector<std::wstring> v { L"ar", L"zebra", L"\u00f6grupp", L"Zebra", L"\u00e4ngel",L"\u00e5r", L"f\u00f6rnamn" }; std::wcout << "Default locale collation order: "; std::sort(v.begin(), v.end()); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "English locale collation order: "; std::sort(v.begin(), v.end(), std::locale("en_US.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "Swedish locale collation order: "; std::sort(v.begin(), v.end(), std::locale("sv_SE.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; }
Salida:
Default locale collation order: Zebra ar förnamn zebra ängel år ögrupp English locale collation order: ängel ar år förnamn ögrupp zebra Zebra Swedish locale collation order: ar förnamn zebra Zebra år ängel ögrupp
Véase también
|
compara lexicográficamente dos cadenas utilizando la faceta de colación de esta configuración regional
(función miembro pública de
std::locale
)
|
|
|
representa el
std::collate
proporcionado por el sistema para la configuración regional nombrada
(plantilla de clase) |