HashMap 생성할 때 with_capacity 사용하기

송한결·2024년 3월 9일
0

그냥 HashMap::new() 를 사용해서 생성한 뒤 원소를 추가해 나가면, 원소의 개수가 내부적인 최대치(capacity)에 도달할 때마다 그 기준을 두 배로 증가시키는 작업을 필요로 합니다.
이런 방식은 다른 언어들에서도 흔히 보이는 방식이라고 하네요.

Rust 의 경우 capacity의 7/8(87.5%) 가 차면 capaticy 를 2배로 증가시킨다고 합니다.

이런 재할당 작업은 시간을 잡아먹기 때문에, HashMap 의 최종 크기 혹은 최대 크기를 미리 알 수 있는 상황이라면, with_capacity 로 생성해주는 방법이 있습니다.

let new_map = HashMap::with_capacity(max_length);

다만 할당한 최대 크기를 못채우는 경우가 많다면 괜히 메모리를 낭비하는 셈이기 때문에, 역시 이것도 상황 by 상황 입니다.

Leetcode 에서 속도가 빠른 코드를 볼 때 자주 만나는 방식인데, 손에 잘 익지 않아서 기록합니다.

profile
브랜드를 가진 사람

0개의 댓글