C++ STL

2021. 12. 27. 13:07·C++

새로 추가된 STL

1. std::unordered_map (그리고 unordered_multimap) - 정렬안된 맵

std::map은 자동으로 정렬되는 컨테이너다.

-> 요소 삽입/제거가 빈번하면 성능이 저하된다.=>정렬안된 std::unordered_map사용

std::unordered_map은 키와 값의 쌍들을 저장, 키는 중복 불가, 자동으로 정렬되지않음

-> 요소는 해쉬 함수가 생성하는 색인 기반의 버킷들로 구성, 해쉬맵이라고도 함.

std::map

자동 정렬, 이진 탐색 트리, 탐색 시간 : O(logn), 삽입과 제거가 빈번하면 느리다.

std:: unordered_map

자동 정렬X, 해쉬 테이블, 탐색 시간 O(1)-해쉬 충돌 없는 경우, 최악 : O(n), 버킷 때문에 메모리 사용량 증가

 

2. std::unordered_set (그리고 unordered_multiset) 

std::map과 같은 문제다. 이진 탐색 트리 기반

std::unordered_set은 정렬되지않는다. 해쉬 테이블 기반

 

3. std::array

요소 수를 기억하지 않음

처음에 타입과 개수를 가져감 C스타일 배열을 만드는 느낌.

더 나은 방법이 많다.

 

범위 기반 for 반복문

for(<range_declaration>:<range_expression>){...}

for(int score : scores)

scores의 값을 score에 하나 씩 대입하여 반복

- 기존 for반복문을 더 간단하게 쓸 수 있으며, 가독성이 더 높다.

- STL 컨테이너와 C스타일 배열 등에서 작동함.

- auto 키워드 사용 가능하며, 컨테이너/배열을 역순회 할 수 없다.

 

for_each보다 사용하기 좋다.

for_each(scores.begin(),scores.end(),printElement);

-> begin부터 end까지 printElement람다 함수 호출

C++03기반이며, 가독성이 밀림.

-> 범위 기반 for문을 사용하자.

저작자표시 (새창열림)

'C++' 카테고리의 다른 글

이동 생성자 및 이동 대입 연산자  (0) 2022.02.19
C++ 스마트 포인터  (1) 2021.12.28
C++ 새로운 자료형  (0) 2021.12.26
C++ 11/14/17/...의 키워드  (0) 2021.12.24
C++ STL 알고리듬  (0) 2021.12.22
'C++' 카테고리의 다른 글
  • 이동 생성자 및 이동 대입 연산자
  • C++ 스마트 포인터
  • C++ 새로운 자료형
  • C++ 11/14/17/...의 키워드
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (297)
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (47)
        • 코딩 테스트 (3)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (1)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
C++ STL
상단으로

티스토리툴바