std::collate_byname
來自 cppreference.com
| 定義於標頭檔案 <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 的公有成員函式) |