std::collate_byname
来自 cppreference.com
在头文件 <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 的公共成员函数) |