set 과 unordered_set

2024. 12. 22. 14:35·내배캠/C++

set 과 unordered_set

 

set과  unordered_set은 C++ 표준 라이브러리의 컨테이너이다.

둘 다 중복되지 않는 고유의 값을 저장하는데 사용되지만 내부 동작 방식에 차이가 있다.

 

set은 Red-Black Tree / 이진 검색 트리 구조를 가지고 있어,데이터를 항상 정렬된 상태로 유지해 정렬된 데이터에 대한 검색이나 순차적인 접근이 필요할 때 적합하다.

따라서 데이터 삽입 시 자동으로 정렬되어 별도의 정렬 작업이 필요 없는 것이 장점이다.

그리고 메모리 사용량이 비교적으로 적다.

하지만 삽입/삭제 연산이 느린 단점을 가지고 있다. / O(log n)

 

unordered_set은 삽입, 삭제, 탐색의 시간 복잡도가 평균적으로 O(1)로 매우 빠른 대신 데이터가 정렬되지 않는다.

그리고 데이터가 해시 테이블에 저장되어서 오버헤드 발생시에 O(n) 으로 느려질 수 있다.

 

정리하자면 순차적으로 데이터를 순회하거나, 가장 큰 값 혹은 작은 값을 빠르게 찾아야하는 경우 그리고 메모리 사용을 최소화해야 하는 경우엔 set을 사용하는게 좋을 것이고,

데이터 정렬이 중요하지 않고, 삽입 및 검색 속도가 중요한 경우엔 unodered_set을 사용하는 것이 더 효율적이다.

'내배캠 > C++' 카테고리의 다른 글

유클리드 알고리즘  (1) 2024.12.23
Class  (0) 2024.12.23
Key-Value 자료구조  (0) 2024.12.21
Binary_Search  (0) 2024.12.16
SQL  (0) 2024.12.02
'내배캠/C++' 카테고리의 다른 글
  • 유클리드 알고리즘
  • Class
  • Key-Value 자료구조
  • Binary_Search
동그래님
동그래님
  • 동그래님
    개발자 동그래
    동그래님
  • 전체
    오늘
    어제
    • 분류 전체보기 (210)
      • 공부 (51)
        • Code Cata (50)
      • 내배캠 (151)
        • TIL (50)
        • C++ (37)
        • Unreal Engine (48)
        • GAS(Gameplay Ability System.. (16)
      • Project (7)
        • Gunfire Paragon (5)
        • Arena Fighters (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    동그래님
    set 과 unordered_set
    상단으로

    티스토리툴바