命名空间
变体
操作

std::collate_byname

来自 cppreference.com
< cpp‎ | locale
在头文件 <locale> 中定义
template< class CharT >
class collate_byname : public std::collate<CharT>;

std::collate_byname 是一个 std::collate 刻面,它封装了特定于区域设置的字符串排序(比较)和哈希。与 std::collate 一样,它可以注入到 std::regex 中,并且可以通过 std::locale::operator() 直接应用于所有期望字符串比较谓词的标准算法。

内容

[编辑] 特化

标准库保证提供以下特化

在头文件 <locale> 中定义
std::collate_byname<char> 特定于区域设置的多字节字符串的排序
std::collate_byname<wchar_t> 特定于区域设置的宽字符串的排序

[编辑] 成员函数

(构造函数)
构造一个新的 collate_byname 刻面
(公共成员函数) [编辑]
(析构函数)
销毁一个 collate_byname 刻面
(受保护的成员函数) [编辑]

std::collate_byname::collate_byname

explicit collate_byname( const char* name, std::size_t refs = 0 );
explicit collate_byname( const std::string& name, std::size_t refs = 0 );
(自 C++11 起)

为具有 name 的区域设置构造一个新的 std::collate_byname 刻面。

refs 用于资源管理:如果 refs == 0,则实现会销毁刻面,当持有它的最后一个 std::locale 对象被销毁时。否则,该对象不会被销毁。

参数

name - 区域设置的名称
refs - 链接到刻面的引用数量

std::collate_byname::~collate_byname

protected:
~collate_byname();

销毁刻面。

std::collate 继承

成员类型

成员类型 定义
char_type CharT
string_type std::basic_string<CharT>

成员函数

调用 do_compare
(std::collate<CharT> 的公共成员函数) [编辑]
调用 do_transform
(std::collate<CharT> 的公共成员函数) [编辑]
调用 do_hash
(std::collate<CharT> 的公共成员函数) [编辑]

受保护的成员函数

[虚拟]
使用此刻面的排序规则比较两个字符串
(std::collate<CharT> 的虚拟受保护成员函数) [编辑]
转换字符串,以便可以使用比较来代替排序
(std::collate<CharT> 的虚拟受保护成员函数) [编辑]
[虚拟]
使用此刻面的排序规则生成一个整数哈希值
(std::collate<CharT> 的虚拟受保护成员函数) [编辑]

[编辑] 注释

排序顺序是字典顺序:字母在国家字母表中的位置(其 *等价类*)优先于其大小写或变体。在同一个等价类中,小写字母的排序优先于其大写字母,并且特定于区域设置的顺序可能适用于带有变音符号的字符。在某些区域设置中,字符组作为单个 *排序单位* 进行比较。例如,捷克语中的 "ch" 位于 "h" 之后,位于 "i" 之前,而匈牙利语中的 "dzs" 位于 "dz" 之后,位于 "g" 之前。

[编辑] 示例

[编辑] 参见

定义字符串的字典排序比较和哈希。
(类模板) [编辑]
根据当前区域设置比较两个字符串。
(函数) [编辑]
根据当前区域设置比较两个宽字符串。
(函数) [编辑]
使用此区域设置的排序面来字典排序比较两个字符串。
(std::locale 的公共成员函数) [编辑]