Поделиться через


collate::compare

Сравнивает 2 последовательности символов согласно их правилам конкретного аспект- равенства или неравенства.

int compare(
   const CharType* _First1,
   const CharType* _Last1,
   const CharType* _First2,
   const CharType* _Last2
) const;

Параметры

  • _First1
    Указатель на первый элемент первой последовательности для сравнения.

  • _Last1
    Указатель к последнему элементу в первой последовательности для сравнения.

  • _First2
    Указатель на первый элемент во второй последовательности для сравнения.

  • _Last2
    Указатель к последнему элементу во второй последовательности для сравнения.

Возвращаемое значение

Return функции-члена:

  • – 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 пространство имен:

См. также

Ссылки

collate Class