왜 표준 라이브러리 코드에서는 같지 않음(!=)을 (!(a==b))로 쓰나요?


C++ 표준 라이브러리에서 갖고 온 remove코드입니다. 왜 같지 않음을 (*first != val)이 아니라 !(*first == val)로 확인하나요?

remove외에 다른 표준 라이브러리에 이렇게 쓰는게 많던데 특별한 이유라도 있나요?

소스 코드

template <class ForwardIterator, class T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val)
 {
    ForwardIterator result = first;
    while (first!=last) {
        if (!(*first == val)) {
            *result = *first;
            ++result;
        }
        ++first;
    }
    return result;
 }
  • 2016년 01월 24일에 작성됨

조회수 171


1 답변


좋아요
0
싫어요
채택취소하기

!=를 쓰려면 !=를 구현해야 합니다.

템플릿을 만들 때 가능한 한 유저가 할 일을 줄여주기 위해 ==연산 하나로 !=까지 다 처리하려고 !(*first == val)과 같이 쓴 것입니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close