더북(TheBook)

  4. 삽입 함수를 추가합니다.

void insert(uint value)
{
    int n = data.size();
    data[value % n] = value;
    std::cout << value << "을(를) 삽입했습니다." << std::endl;
}

위 코드를 보면 계산된 해시 값 위치에 이미 다른 값이 존재하는지를 확인하지 않습니다. 즉, 특정 위치에 이미 다른 값이 존재하더라도 단순히 덮어쓰게 됩니다. 결국 해시 값이 중복될 경우 나중에 삽입한 값만 저장됩니다.

  5. 특정 원소가 맵에 있는지를 확인하는 룩업 함수를 추가합니다.

bool find(uint value)
{
    int n = data.size();
    return (data[value % n] == value);
}

해시 값 위치에 저장된 값이 value와 같은지를 검사합니다.

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