lexicographiocal_compare

42_Cursus·2022년 5월 17일
0

STL_Containers

목록 보기
2/13

lexicographiocal_compare

first2 ~ last2사이의 데이터들이 
first1 ~ last1 사이의 데이터들보다
뒤에있다면 true, 아니라면 false.
  • prototype
template <	class InputIterator1, 
			class InputIterator2>
bool lexicographical_compare (
				InputIterator1 first1, 
        		InputIterator1 last1,
        		InputIterator2 first2, 
       			InputIterator2 last2);
template <class InputIterator1, class InputIterator2>
  bool lexicographical_compare (InputIterator1 first1, InputIterator1 last1,
                                InputIterator2 first2, InputIterator2 last2)
{
  while (first1!=last1)
  {
    if (first2==last2 || *first2<*first1) return false;
    else if (*first1<*first2) return true;
    ++first1; ++first2;
  }
  return (first2!=last2);
}
  • 예)

// lexicographical_compare example
#include <iostream>     // std::cout, std::boolalpha
#include <algorithm>    // std::lexicographical_compare
#include <cctype>       // std::tolower

// a case-insensitive comparison function:
bool mycomp (char c1, char c2)
{ return std::tolower(c1)<std::tolower(c2); }

int main () {
  char foo[]="Apple";
  char bar[]="apartment";

  std::cout << std::boolalpha;

  std::cout << "Comparing foo and bar lexicographically (foo<bar):\n";

  std::cout << "Using default comparison (operator<): ";
  std::cout << std::lexicographical_compare(foo,foo+5,bar,bar+9);
  std::cout << '\n';

  return 0;
}

// Comparing foo and bar // lexicographically (foo<bar):
// Using default comparison (operator<): true
profile
etudiant_42

0개의 댓글