命名空间
变体
操作

std::collate_byname

来自 cppreference.cn
< cpp‎ | locale
 
 
 
 
定义于头文件 <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 的公有成员函数) [编辑]