std::collate_byname
来自 cppreference.cn
定义于头文件 <locale> |
||
template< class CharT > class collate_byname : public std::collate<CharT>; |
||
std::collate_byname
是一个 std::collate 方面(facet),它封装了特定于语言环境的字符串整理(比较)和哈希。与 std::collate 一样,它可以被注入到 std::regex 中,并通过 std::locale::operator() 直接应用于所有期望字符串比较谓词的标准算法。
目录 |
[编辑] 特化
标准库保证提供以下特化
定义于头文件
<locale> | |
std::collate_byname<char> | 多字节字符串的语言环境特定整理 |
std::collate_byname<wchar_t> | 宽字符串的语言环境特定整理 |
[编辑] 成员函数
(构造函数) |
构造新的 collate_byname 方面(facet)(公有成员函数) |
(析构函数) |
销毁 collate_byname 方面(facet)(受保护成员函数) |
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 | - | 链接到 facet 的引用计数 |
std::collate_byname::~collate_byname
protected: ~collate_byname(); |
||
销毁 facet。
继承自 std::collate
嵌套类型
类型 | 定义 |
char_type
|
CharT
|
string_type
|
std::basic_string<CharT> |
[编辑] 数据成员
成员 | 描述 |
std::locale::id id [static] |
facet 的标识符 |
成员函数
调用 do_compare ( std::collate<CharT> 的公有成员函数) | |
调用 do_transform ( std::collate<CharT> 的公有成员函数) | |
调用 do_hash ( std::collate<CharT> 的公有成员函数) |
受保护的成员函数
[虚函数] |
使用此 facet 的排序规则比较两个字符串 ( std::collate<CharT> 的虚保护成员函数) |
[虚函数] |
转换字符串,以便整理可以通过比较来替代 ( std::collate<CharT> 的虚保护成员函数) |
[虚函数] |
使用此方面的整理规则生成整数哈希值 ( std::collate<CharT> 的虚保护成员函数) |
[编辑] 注意
整理顺序是字典顺序:字母在国家字母表中的位置(其 *等价类*)比其大小写或变体具有更高的优先级。在等价类中,小写字符排在大写字符之前,并且特定于语言环境的顺序可能适用于带有变音符号的字符。在某些语言环境中,字符组作为一个 *整理单元* 进行比较。例如,捷克语中的 "ch" 在 "h" 之后,在 "i" 之前;匈牙利语中的 "dzs" 在 "dz" 之后,在 "g" 之前。
[编辑] 示例
本节不完整 原因:无示例 |
[编辑] 参阅
定义字符串的词法比较和哈希 (类模板) | |
根据当前区域设置比较两个字符串 (函数) | |
根据当前语言环境比较两个宽字符串 (函数) | |
使用此区域设置的 collate facet 对两个字符串进行字典比较 ( std::locale 的公有成员函数) |