equal과 lexicographical_compare

hyenam·2022년 4월 25일
0

ft_containers

목록 보기
6/8

equal

equality (1)	
template <class InputIterator1, class InputIterator2>
  bool equal (InputIterator1 first1, InputIterator1 last1,
              InputIterator2 first2);
predicate (2)	
template <class InputIterator1, class InputIterator2, class BinaryPredicate>
  bool equal (InputIterator1 first1, InputIterator1 last1,
              InputIterator2 first2, BinaryPredicate pred);

두 범위의 요소가 동일한지 검정하는 함수 템플릿이다.

[first1, last1] 범위의 요소를 first2에서 시작하는 범위의 요소와 비교하고, 두 범위의 모든 요소가 일치하면 true를 반환한다.

요소는 operator==(또는 버전 (2)에서는 pred(함수 인자))를 사용하여 비교함.

인자

  • first1, last1 - 비교할 범위. last1이 가리키는 원소는 포함하지 않는다.
  • first2 - 위 범위에서 비교할 반복자. [first1, last1]범위만큼 first1과 비교함.
  • pred - 두개의 인자를 받고 bool값을 반환하는 이진 함수이다. 반환되는 값은 요소가 이 함수의 컨텍스트에서 일치하는 것으로 간주되는지 여부를 나타냄.
    함수는 인자를 수정하지 않아야함.

lexicographical_compare

사전식 순서로 비교해주는 함수이다.

default (1)	
template <class InputIterator1, class InputIterator2>
  bool lexicographical_compare (InputIterator1 first1, InputIterator1 last1,
                                InputIterator2 first2, InputIterator2 last2);
custom (2)	
template <class InputIterator1, class InputIterator2, class Compare>
  bool lexicographical_compare (InputIterator1 first1, InputIterator1 last1,
                                InputIterator2 first2, InputIterator2 last2,
                                Compare comp);                         

[first1, last]이 [first2,last2]보다 사전순으로 작을 경우 true를 반환한다.

만약 두 범위중 한 범위가 끝날때까지 요소의 내용이 동일할 경우 더 짧은 길이의 시퀀스가 긴 시퀀스보다 사전순으로 작다.

첫 번째 버전의 경우 연산자 <를 사용하고 두 번째 버전의 경우 comp(함수 인자)를 사용하여 요소를 비교한다. ab 두 원소는 if (!(a<b) && !(b<a)) 또는 if (!comp(a,b) && !comp(b,a))이면 동일한 것으로 간주된다.


  • (std::equal)[https://www.cplusplus.com/reference/algorithm/equal/?kw=equal]
  • (std::lexicographical_compare)[https://www.cplusplus.com/reference/algorithm/lexicographical_compare/?kw=lexicographical_compare]
profile
공부한 걸 정리하고 있습니다.

0개의 댓글

관련 채용 정보