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 用于资源管理:在销毁最后一个保有刻面的 std::locale 对象时,如果 refs == 0,那么实现会销毁刻面对象。否则不销毁对象。

参数

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 的公开成员函数)