더북(TheBook)

  8. 이제 hash_map 클래스의 insert()erase() 함수를 사용하는 코드를 추가합니다.

    map.insert(2);
    map.insert(25);
    map.insert(10);
    print(25);

    map.insert(100);
    print(100);
    print(2);

    map.erase(25);
} 

  9. 실제 프로그램을 실행하면 다음과 같은 출력을 확인할 수 있습니다.

2을(를) 삽입했습니다.
25을(를) 삽입했습니다.
10을(를) 삽입했습니다.
해시 맵에서 25을(를) 찾았습니다.
100을(를) 삽입했습니다.
해시 맵에서 100을(를) 찾았습니다.
해시 맵에서 2을(를) 찾지 못했습니다.
25을(를) 삭제했습니다.

이번 연습 문제에서 이전에 삽입한 값 대부분을 찾을 수 있었습니다. 다만 숫자 100을 삽입하면 100 % 7 = 2이므로 기존에 삽입된 정수 2를 덮어쓰게 되고, 이후에는 2를 찾지 못합니다. 이것이 앞서 설명한 충돌입니다. 다음 절에서 이러한 충돌을 어떻게 해결하여 정확한 결과를 얻을 수 있는지에 대해 설명하겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.