Namespaces
Variants

std:: collate_byname

From cppreference.net
定义于头文件 <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 > 宽字符串的本地化排序规则

成员函数

(constructor)
构造新的 collate_byname 本地化刻面
(公开成员函数)
(destructor)
销毁 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 ) ;
(since 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 >

数据成员

成员 描述
std::locale::id id [static] facet 的标识符

成员函数

调用 do_compare
( std::collate<CharT> 的公开成员函数)
调用 do_transform
( std::collate<CharT> 的公开成员函数)
调用 do_hash
( std::collate<CharT> 的公开成员函数)

受保护成员函数

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

注释

排序规则采用字典顺序:字母在民族字母表中的位置(其 等价类 )优先于字母的大小写或变体。在等价类内部,小写字符排序先于对应的大写字符,对于带变音符号的字符可能采用区域特定的排序规则。在某些区域设置中,字符组会作为单个 排序单元 进行比较。例如,捷克语中的 "ch" 排在 "h" 之后、 "i" 之前,而匈牙利语中的 "dzs" 排在 "dz" 之后、 "g" 之前。

示例

参见

定义字符串的字典序比较和哈希计算
(类模板)
根据当前本地化设置比较两个字符串
(函数)
根据当前本地化设置比较两个宽字符串
(函数)
使用此locale的collate facet对两个字符串进行字典序比较
( std::locale 的公开成员函数)