이것은 C ++ 표준 라이브러리 remove코드의 코드입니다. 불평등은 왜 if (!(*first == val))대신에 시험 if (*first != val)되는가?
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;
}
operator==여기서 사용될 것으로 예상된다.
const이전의 주석에는 예제 가 있어야 하지만 요점을 알 수 있습니다. (편집하기에 너무 늦음)
operator!=입니다.operator==구현을 사용하십시오 .bool operator!=(const Foo& other) { return !(*this == other); }