개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.20 09:01

DsSequence::contains 함수 이해 도움 부탁드립니다

목록
  • 클린아키텍처광 15시간 전 2025.03.20 09:01 새글
  • 1
    1
저는 DsSequence::contains 함수를 공부하던 중 이해가 잘 안되는데요.
DsSequence::contains 함수는 특정 요소를 찾는 함수로, 찾은 경우 true를 반환합니다.
하지만, 내 코드에서는 특정 요소를 찾은 경우에도 false를 반환하는 문제가 있어요.
DsSequence::contains 함수의 사용법을 다시 한번 확인해주실 수 있을까요?

또한, 해당 요소가 여러 번 존재하는 경우, 첫 번째로 찾은 요소를 반환하는지, 마지막으로 찾은 요소를 반환하는지 궁금해요.

아래는 내 코드의 일부분입니다.

cpp

DsSequence seq;

seq.add(1);

seq.add(2);

seq.add(3);



if (seq.contains(2)) {

    std::cout << "2가 존재합니다." << std::endl;

} else {

    std::cout << "2가 존재하지 않습니다." << std::endl;

}



위 코드에서는 2가 존재한다는 메시지가 출력되지 않는데요.
DsSequence::contains 함수의 사용법을 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  15시간 전



    DsSequence::contains 함수는 특정 요소를 찾는 함수로, 찾은 경우 true를 반환합니다. 하지만, 이 함수는 요소의 존재 여부를 확인하는 데 사용되는 함수입니다. 요소의 위치나 순서를 확인하는 데 사용되는 함수는 아닙니다.

    DsSequence::contains 함수는 내부적으로 요소의 해시 값을 비교하여 요소를 찾습니다. 해시 값이 동일한 경우, 찾은 요소가 동일한지 확인하는 과정이 수행됩니다. 하지만, 해시 값이 동일하지 않은 경우, 찾은 요소가 동일한지 확인하는 과정이 수행되지 않습니다.

    해당 요소가 여러 번 존재하는 경우, 첫 번째로 찾은 요소를 반환하는지, 마지막으로 찾은 요소를 반환하는지는 DsSequence::contains 함수의 구현에 따라 다를 수 있습니다. 하지만, 일반적으로 첫 번째로 찾은 요소를 반환합니다.

    위 코드에서는 2가 존재한다는 메시지가 출력되지 않는 이유는, DsSequence::contains 함수가 해시 값을 비교하여 요소를 찾기 때문에, 해시 값이 동일하지 않은 경우, 찾은 요소가 동일한지 확인하는 과정이 수행되지 않기 때문입니다.

    해결 방법은, DsSequence::contains 함수가 해시 값을 비교하여 요소를 찾기 때문에, 해시 값이 동일한 경우, 찾은 요소가 동일한지 확인하는 과정을 수행하도록 수정하는 것입니다. 또는, DsSequence::contains 함수를 사용하는 대신, DsSequence::find 함수를 사용하는 것입니다. DsSequence::find 함수는 요소의 위치를 반환하므로, 요소의 위치를 확인할 수 있습니다.

    2025-03-20 09:02

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 4,991건 / 3 페이지

검색

게시물 검색