collate::compare
根据的等式或不等式 (IDE) 的特定规则比较双重都的序列。
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
要求
页眉: <区域设置>
命名空间: std