collate::compare
根據它們的等號比較運算子或不等比較Facet的特定規則比較這兩個字元的序列。
int compare(
const CharType* _First1,
const CharType* _Last1,
const CharType* _First2,
const CharType* _Last2
) const;
參數
_First1
第一個項目的指標在要比較的第一個序列。_Last1
到最後一個項目的指標在要比較的第一個序列。_First2
第一個項目的指標在要比較的第二個序列。_Last2
到最後一個項目的指標在要比較的第二個序列。
傳回值
成員函式會傳回:
– 1,如果第一個序列比第二個序列比較少。
+1,如果第二個序列的第一個序列比較少。
0,如果序列是相同的。
備註
第一個序列比較少,則具有較小的位於序列最早的不等於,則為,否則為,表示不等於不存在,不過,第一個序列較短。
成員函式傳回 do_compare(_First1、 _Last1、 _First2, _Last2)。
範例
// collate_compare.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <tchar.h>
using namespace std;
int main() {
locale loc ( "German_germany" );
_TCHAR * s1 = _T("Das ist wei\x00dfzz."); // \x00df is the German sharp-s, it comes before z in the German alphabet
_TCHAR * s2 = _T("Das ist weizzz.");
int result1 = use_facet<collate<_TCHAR> > ( loc ).
compare ( s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << result1 << endl;
locale loc2 ( "C" );
int result2 = use_facet<collate<_TCHAR> > ( loc2 ).
compare (s1, &s1[_tcslen( s1 )-1 ], s2, &s2[_tcslen( s2 )-1 ] );
cout << result2 << endl;
}
範例輸出
-1
1
需求
標題: <locale>
命名空間: std