std::collate

来自cppreference.com
< cpp‎ | locale

定义于头文件 <locale>
template< class CharT >
class collate;
std::collate封装区域设置特定的排序规则(比较)和散列字符串。这方面是使用std::basic_regexstd::locale::operator()手段,可应用于所有的标准算法,期望字符串比较谓词.
原文:
Class std::collate encapsulates locale-specific collation (comparison) and hashing of strings. This facet is used by std::basic_regex and can be applied, by means of std::locale::operator(), directly to all standard algorithms that expect a string comparison predicate.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
cpp/locale/locale/facetstd-collate-inheritance.svg
关于这幅图像

继承图

两个专业所提供的标准库和所有语言环境中创建的对象在C + +程序实现
原文:
Two specializations are provided by the standard library and are implemented by all locale objects created in a C++ program:
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
定义于头文件 <locale>
std::collate<char>
实现字节字符串的字典序
原文:
implements lexicographical ordering of byte strings
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
std::collate<wchar_t>
实现宽字符串的字典序
原文:
implements lexicographical ordering of wide strings
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 会员类型

会员类型
原文:
Member type
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
Definition
char_type charT
string_type std::basic_string<charT>

[编辑] 成员函数

构造一个新的整理方面
原文:
constructs a new collate facet
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数)
解构一个整理方面
原文:
destructs a collate facet
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(受保护成员函数)
调用do_compare
原文:
invokes do_compare
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
调用do_transform
原文:
invokes do_transform
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
调用do_hash
原文:
invokes do_hash
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]

[编辑] 会员对象

static std::locale::id id
“ID”的语言环境
原文:
id of the locale
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员对象)

[编辑] 受保护的成员函数

使用这方面的排序规则比较两个字符串
原文:
compares two strings using this facet's collation rules
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(虚受保护成员函数) [编辑]
转换的字符串排序规则,以便通过比较可以被替换
原文:
transforms a string so that collation can be replaced by comparison
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(虚受保护成员函数) [编辑]
生成一个整数的哈希值,使用这方面的排序规则
原文:
generates an integer hash value using this facet's collation rules
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(虚受保护成员函数) [编辑]

[编辑] 示例

#include <locale>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main()
{
    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';
}

输出:

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

[编辑] 另请参阅

使用这个 locale 的 collate 刻面按字典序比较两个字符串
(std::locale 的公开成员函数) [编辑]
创建一个命名的语言环境的整理方面
原文:
creates a collate facet for the named locale
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板)