std::collate_byname

< 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() 直接应用到所有期待 string 比较谓词的标准算法。

标准库提供二个特化

定义于头文件 <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"

示例

参阅

定义字典序比较和字符串的散列
(类模板)
按照当前本地环境比较两个字符串
(函数)
按照当前本地环境比较两个宽字符串
(函数)
用此 locale 的 collate 刻面以字典序比较两个字符串
(std::locale 的公开成员函数)