C ++ 라이브러리-<무순 맵>

무순지도 소개

정렬되지 않은 맵은 데이터 구조와 같은 사전입니다. (키, 값) 쌍의 시퀀스로, 단일 값만 각 고유 키와 연결됩니다. 종종 연관 배열 이라고 합니다. 키를 기반으로 개별 요소를 빠르게 검색 할 수 있습니다. 또한 키 값을 인수로 사용하여 매핑 된 값에 직접 액세스 할 수 있는 직접 액세스 연산자 (subscript operator []) 를 구현합니다 .

정렬되지 않은 맵은 키 또는 매핑 된 값과 관련하여 특정 순서로 요소를 정렬하지 않고 대신 키 값으로 개별 요소에 직접 빠르게 액세스 할 수 있도록 해시 값에 따라 버킷으로 구성합니다.

정렬되지 않은 맵은 키로 개별 요소에 액세스하는 동안 맵보다 성능이 좋습니다. 그러나 범위 반복의 경우 성능이 상당히 낮습니다.

정의

아래는 <unordered_map> 헤더 파일의 std :: unordered_map 정의입니다.

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

매개 변수

  • Key − 키 유형.

  • T − 매핑 된 값의 유형.

  • Hash 유형 의 객체 를 인수로 취하고 이를 기반으로 size_t 유형의 고유 값을 반환하는 단항 함수 객체 유형 .

  • Pred키 유형 의 두 인수 와 부울을 반환하는 바이너리 술어 .

  • Alloc − 할당 자 개체의 유형.

  • T는 사용자 정의 유형을 포함한 다른 데이터 유형으로 대체 될 수 있습니다.

회원 유형

다음 멤버 유형은 멤버 함수에 의해 매개 변수 또는 리턴 유형으로 사용될 수 있습니다.

Sr. 아니. 회원 유형 정의
1 key_type 키 (템플릿의 첫 번째 매개 변수)
2 매핑 된 _ 유형 T (템플릿의 두 번째 매개 변수)
값 _ 유형 쌍 <const key_type, mapped_type>
4 해셔 세 번째 템플릿 매개 변수 (기본값 : hash <key_type>)
5 key_equal 네 번째 템플릿 매개 변수 (기본값 : equal_to <key_type>)
6 할당 자 _ 유형 Alloc (템플릿의 다섯 번째 매개 변수)
7 참고 값 _ 유형 &
8 const_reference const 값 _ 유형 &
9 바늘 allocator_traits <할당> :: 포인터
10 const_pointer allocator_traits <할당> :: const_pointer
11 반복자 value_type value_type에 대한 순방향 반복기
12 const_iterator const value_type value_type에 대한 순방향 반복기
13 local_iterator value_type에 대한 순방향 반복기
14 const_local_iterator const value_type에 대한 순방향 반복기
15 차이 _ 유형 ptrdiff_t
16 크기 유형 size_t

<무순 맵>의 함수

아래는 <unorder_map> 헤더의 모든 메소드 목록입니다.

생성자

Sr. 아니. 방법 및 설명
1 무순 맵 :: 무순 맵 기본 생성자

요소가 0 인 비어있는 비 순차 맵을 생성합니다.

2 무순 맵 :: 무순 맵 복사 생성자

기존의 무순 맵에있는 각 요소의 복사본으로 무순 맵을 생성합니다.

무순 맵 :: 무순 맵 이동 생성자

이동 시맨틱을 사용하여 다른 컨텐츠로 무순 맵을 구성합니다.

4 무순 맵 :: 무순 맵 범위 생성자

처음 부터 마지막 까지의 범위에있는만큼 많은 요소로 무순 맵을 구성 합니다.

5 무순 맵 :: 무순 맵 initializer_list 생성자

초기화 목록에서 무순 맵을 생성합니다.

폐물 소각로

Sr. 아니. 방법 및 설명
1 무순 맵 :: ~ 무순 맵

메모리 할당을 해제하여 unorder_map 객체를 파괴합니다.

회원 기능

Sr. 아니. 방법 및 설명
1 무순 맵 :: at

k 키와 연결된 매핑 된 값에 대한 참조를 반환합니다 .

2 unorder_map :: begin 컨테이너 반복자

지도의 첫 번째 요소를 참조하는 반복기를 반환합니다.

unorder_map :: begin 버킷 반복자

버킷 중 하나의 첫 번째 요소를 가리키는 반복기를 반환합니다.

4 unorder_map :: bucket

키가 k 인 요소가있는 버킷 번호를 반환합니다 .

5 unorder_map :: bucket_count

무순 맵 컨테이너의 버킷 수를 반환합니다.

6 unorder_map :: bucket_size

n 번째 버킷 에있는 요소의 수를 반환합니다 .

7 unorder_map :: cbegin 컨테이너 반복기

무순 맵의 첫 번째 요소를 참조하는 상수 반복기를 반환합니다.

8 unorder_map :: cbegin 버킷 반복기

버킷 중 하나의 첫 번째 요소를 가리키는 상수 반복기를 반환합니다.

9 unorder_map :: cend 컨테이너 반복기

무순 맵의 요소 를 가리키는 상수 반복기를 반환합니다 .

10 unorder_map :: cend 버킷 반복자

버킷 중 하나에서 마지막 요소 를 가리키는 상수 반복기를 반환합니다 .

11 unorder_map :: clear

모든 요소를 ​​제거하여 무순 맵을 파괴하고 무순 맵의 크기를 0으로 설정합니다 .

12 unorder_map :: count

k 키와 관련된 매핑 된 값의 수를 반환합니다 .

13 unorder_map :: emplace

새 요소를 삽입하여 컨테이너를 확장합니다.

14 unorder_map :: emplace_hint

힌트를 요소의 위치로 사용하여 무순 맵에 새 요소를 삽입합니다.

15 unorder_map :: empty

무순 맵이 비어 있는지 여부를 테스트합니다.

16 unorder_map :: end 컨테이너 반복기

순서가 지정되지 않은 맵의 요소 를 지나가는 반복기를 반환합니다 .

17 unorder_map :: end 버킷 반복자

버킷 중 하나에서 마지막 요소 를 가리키는 반복자를 반환합니다 .

18 unorder_map :: equal

특정 키와 일치하는 요소 범위를 반환합니다.

19 unorder_map :: erase 위치 버전

position 에서 unorder_map의 단일 요소를 제거합니다 .

20 unorder_map :: erase 키 버전

k 키와 연관된 매핑 된 값을 제거합니다 .

21 unorder_map :: erase 범위 버전

무순 맵에서 요소 범위를 제거합니다.

22 unorder_map :: find

k 키와 관련된 요소를 찾습니다 .

23 unorder_map :: get_allocator

무순 맵과 관련된 할당자를 반환합니다.

24 unorder_map :: hash_function

무순 맵 컨테이너에서 사용하는 해시 함수 개체를 계산합니다.

25 무순 맵 :: 삽입

무순 맵에 새 요소를 삽입하여 컨테이너를 확장합니다.

26 unorder_map :: 이동 버전 삽입

무순 맵에 새 요소를 삽입하여 컨테이너를 확장합니다.

27 unorder_map :: 힌트 버전 삽입

무순 맵에 새 요소를 삽입하여 오염 물질을 확장합니다.

28 unorder_map :: insert 이동 및 힌트 버전

새 요소를 삽입하여 무순 맵을 확장합니다.

29 unorder_map :: 범위 버전 삽입

무순 맵에 새 요소를 삽입하여 컨테이너를 확장합니다.

30 unorder_map :: initializer_list 버전 삽입

이니셜 라이저 목록에서 새 요소를 삽입하여 맵을 확장합니다.

31 무순 맵 :: key_eq

키가 같은지 비교하는 함수를 반환합니다.

32 unorder_map :: load_factor

무순 맵 컨테이너의 현재로드 비율을 반환합니다.

33 unorder_map :: max_bucket_count

무순 맵 컨테이너가 가질 수있는 최대 버킷 수를 반환합니다.

34 unorder_map :: max_load_factor 버전 가져 오기

무순 맵 컨테이너의 현재 최대 부하율을 반환합니다.

35 unorder_map :: max_load_factor 세트 버전

무순 맵 컨테이너에 새로드 팩터를 할당합니다.

36 unorder_map :: max_size

unorder_map이 보유 할 수있는 최대 요소 수를 반환합니다.

37 unorder_map :: operator = 버전 복사

이전 콘텐츠를 대체하여 무순 맵에 새 콘텐츠를 할당하고 필요한 경우 크기를 수정합니다.

38 unorder_map :: operator = 버전 이동

순서가 지정되지 않은 한 맵의 내용을 다른 맵으로 이동하고 필요한 경우 크기를 수정합니다.

39 unorder_map :: operator = initializer_list 버전

이니셜 라이저 목록의 요소를 무순 맵으로 복사합니다.

40 무순 맵 :: 연산자 []

k 가 컨테이너의 요소와 일치하면 메서드는 요소에 대한 참조를 반환합니다.

41 unorder_map :: operator [] 버전 이동

k 가 컨테이너의 요소와 일치하면 메서드는 요소에 대한 참조를 반환합니다.

42 unorder_map :: rehash

컨테이너의 버킷 수를 n 개 이상으로 설정합니다.

43 unorder_map :: reserve

컨테이너의 버킷 수를 n 개 이상의 요소 를 포함하기에 가장 적합한 수로 설정합니다 .

44 무순 맵 :: 크기

무순 맵에있는 요소의 수를 반환합니다.

45 unorder_map :: swap

순서가 지정되지 않은 첫 번째 맵의 내용을 다른 맵과 교환합니다.

비 멤버 오버로드 함수

Sr. 아니. 방법 및 설명
1 무순 맵 :: 연산자 ==

두 개의 비 순차 맵이 같은지 여부를 테스트합니다.

2 unorder_map :: operator! =

두 개의 비 순차 맵이 같은지 여부를 테스트합니다.

unorder_map :: swap

순서가 지정되지 않은 첫 번째 맵의 내용을 다른 맵과 교환합니다.

무순 멀티 맵 소개

무순 다중 맵은 데이터 구조와 같은 사전입니다. 서로 다른 요소가 동등한 키를 가질 수있는 (키, 값) 쌍의 시퀀스입니다. 동등한 키를 가진 요소는 동일한 버킷에 함께 그룹화되어 equal_range 반복자 가 모든 항목을 반복 할 수 있습니다.

Unordered_multimap은 키 또는 매핑 된 값과 관련하여 특정 순서로 요소를 정렬하지 않고 대신 키 값으로 개별 요소에 직접 빠르게 액세스 할 수 있도록 해시 값에 따라 버킷으로 구성합니다.

정의

다음은 <무순 맵> 헤더 파일의 std :: unordered_multimap 정의입니다.

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

매개 변수

  • Key − 키 유형.

  • T − 매핑 된 값의 유형.

  • Hash 유형 의 객체 를 인수로 취하고 이를 기반으로 size_t 유형의 고유 값을 반환하는 단항 함수 객체 유형 .

  • Pred키 유형 의 두 인수 와 부울을 반환하는 바이너리 술어 .

  • Alloc − 할당 자 개체의 유형.

    T는 사용자 정의 유형을 포함한 다른 데이터 유형으로 대체 될 수 있습니다.

회원 유형

다음 멤버 유형은 멤버 함수에 의해 매개 변수 또는 리턴 유형으로 사용될 수 있습니다.

Sr. 아니. 회원 유형 정의
1 key_type 키 (템플릿의 첫 번째 매개 변수)
2 매핑 된 _ 유형 T (템플릿의 두 번째 매개 변수)
값 _ 유형 쌍 <const key_type, mapped_type>
4 해셔 세 번째 템플릿 매개 변수 (기본값 : hash <key_type>)
5 key_equal 네 번째 템플릿 매개 변수 (기본값 : equal_to <key_type>)
6 할당 자 _ 유형 Alloc (템플릿의 다섯 번째 매개 변수)
7 참고 값 _ 유형 &
8 const_reference const 값 _ 유형 &
9 바늘 allocator_traits <할당> :: 포인터
10 const_pointer allocator_traits <할당> :: const_pointer
11 반복자 value_type value_type에 대한 순방향 반복기
12 const_iterator const value_type value_type에 대한 순방향 반복기
13 local_iterator value_type에 대한 순방향 반복기
14 const_local_iterator const value_type에 대한 순방향 반복기
15 차이 _ 유형 ptrdiff_t
16 크기 유형 size_t

<unorder_multimap>의 함수

아래는 <unorder_map> 헤더의 모든 메소드 목록입니다.

생성자

Sr. 아니. 방법 및 설명
1 unorder_multimap :: unordered_multimap () 기본 생성자

요소가없는 빈 정렬되지 않은 다중 맵을 생성합니다.

2 unorder_multimap :: unordered_multimap () 복사 생성자

기존의 무순 다중 맵에있는 각 요소의 복사본을 사용하여 무순 다중 맵을 생성합니다.

unorder_multimap :: unordered_multimap () 이동 생성자

이동 시맨틱을 사용하여 다른 내용으로 무순 다중 맵을 구성합니다.

4 unorder_multimap :: unordered_multimap () 범위 생성자

처음 부터 마지막 까지의 범위에있는만큼 많은 요소를 사용하여 순서가 지정되지 않은 다중 맵을 구성 합니다.

5 unorder_multimap :: unordered_multimap () initializer_list 생성자

초기화 목록에서 무순 다중 맵을 생성합니다.

폐물 소각로

Sr. 아니. 방법 및 설명
1 무순 멀티 맵 :: ~ 무순 멀티 맵 ()

메모리 할당을 해제하여 unorder_multimap 객체를 파괴합니다.

회원 기능

Sr. 아니. 방법 및 설명
1 unorder_multimap :: begin () 컨테이너 반복기

순서가 지정되지 않은 _mulitmap의 첫 번째 요소를 참조하는 반복기를 리턴합니다.

2 unorder_multimap :: begin () 버킷 반복기

버킷 중 하나의 첫 번째 요소를 가리키는 반복기를 반환합니다.

unorder_multimap :: bucket ()

키가 k 인 요소가있는 버킷 번호를 반환합니다 .

4 unorder_multimap :: bucket_count ()

unorder_multimap 컨테이너에있는 버킷 수를 반환합니다.

5 unorder_multimap :: bucket_size ()

n 번째 버킷 에있는 요소의 수를 반환합니다 .

6 unorder_multimap :: cbegin () 컨테이너 반복기

무순 다중 맵의 첫 번째 요소를 참조하는 상수 반복기를 반환합니다.

7 unorder_multimap :: cbegin () 버킷 반복기

버킷 중 하나의 첫 번째 요소를 가리키는 상수 반복기를 반환합니다.

8 unorder_multimap :: cend () 컨테이너 반복기

순서가 지정되지 않은 다중 맵의 마지막 요소 를 가리키는 상수 반복기를 반환합니다 .

9 unorder_multimap :: cend () 버킷 반복기

버킷 중 하나에서 마지막 요소 를 가리키는 상수 반복기를 반환합니다 .

10 unorder_multimap :: clear ()

모든 요소를 ​​제거하여 무순 멀티 맵을 파괴하고 무순 멀티 맵의 크기를 0으로 설정합니다 .

11 unorder_multimap :: count ()

k 키와 관련된 매핑 된 값의 수를 반환합니다 .

12 unorder_multimap :: emplace ()

새 요소를 삽입하여 컨테이너를 확장합니다.

13 unorder_multimap :: emplace_hint ()

요소의 위치로 힌트를 사용하여 순서가 지정되지 않은 다중 맵에 새 요소를 삽입합니다.

14 unorder_multimap :: empty ()

unorder_multimap이 비어 있는지 여부를 테스트합니다.

15 unorder_multimap :: end () 컨테이너 반복기

순서가 지정되지 않은 다중 맵에서 마지막 요소 를 가리키는 반복기를 반환합니다 .

16 unorder_multimap :: end () 버킷 반복기

버킷 중 하나에서 마지막 요소 를 가리키는 반복자를 반환합니다 .

17 unorder_multimap :: equal_range ()

특정 키와 일치하는 요소 범위를 반환합니다.

18 unorder_multimap :: erase () 위치 버전

position 에서 unordered_multimap의 단일 요소를 제거합니다 .

19 unorder_multimap :: erase () 키 버전

k 키와 연관된 매핑 된 값을 제거합니다 .

20 unorder_multimap :: erase () 범위 버전

무순 다중 맵에서 요소 범위를 제거합니다.

21 unorder_multimap :: find ()

k 키와 관련된 요소를 찾습니다 .

22 unorder_multimap :: get_allocator ()

무순 다중 맵과 관련된 할당자를 반환합니다.

23 unorder_multimap :: hash_function ()

unorder_multimap 컨테이너에서 사용하는 해시 함수 객체를 계산합니다.

24 unorder_multimap :: insert () 값 버전

unorder_multimap에 새 요소를 삽입하여 컨테이너를 확장합니다.

25 unorder_multimap :: insert () 버전 이동

새 요소를 삽입하여 unorder_multimap을 확장합니다.

26 unorder_multimap :: insert () 힌트 버전

unorder_multimap에 새 요소를 삽입하여 컨테이너를 확장합니다.

27 unorder_multimap :: insert () 힌트 이동 버전

이동 시맨틱을 사용하여 unordered_multimap에 새 요소를 삽입하여 컨테이너를 확장합니다.

28 unorder_multimap :: insert () 범위 버전

unorder_multimap에 새 요소를 삽입하여 컨테이너를 확장합니다.

29 unorder_multimap :: insert () initializer_list 버전

이니셜 라이저 목록에서 새 요소를 삽입하여 unorder_multimap을 확장합니다.

30 unorder_multimap :: key_eq ()

키가 같은지 비교하는 함수를 반환합니다.

31 unorder_multimap :: load_factor ()

정렬되지 않은 다중 맵 컨테이너의 현재로드 비율을 반환합니다.

32 unorder_multimap :: max_bucket_count ()

unorder_multimap 컨테이너가 가질 수있는 최대 버킷 수를 반환합니다.

33 unorder_multimap :: max_load_factor () 버전 가져 오기

unorder_multimap 컨테이너의 현재 최대로드 비율을 반환합니다.

34 unorder_multimap :: max_load_factor () 세트 버전

unorder_multimap 컨테이너에 새로드 팩터를 할당합니다.

35 unorder_multimap :: max_size ()

unorder_multimap이 보유 할 수있는 최대 요소 수를 반환합니다.

36 unorder_multimap :: operator = () 사본 버전

이전 내용을 대체하여 unorder_multimap에 새 내용을 할당하고 필요한 경우 크기를 수정합니다.

37 unorder_multimap :: operator = () 버전 이동

하나의 unorder_multimap의 내용을 다른 것으로 이동하고 필요한 경우 크기를 수정합니다.

38 unorder_multimap :: operator = () initializer_list 버전

이니셜 라이저 목록의 요소를 무순 다중 맵으로 복사합니다.

39 unorder_multimap :: rehash ()

컨테이너의 버킷 수를 n 개 이상으로 설정합니다.

40 unorder_multimap :: reserve ()

컨테이너의 버킷 수를 n 개 이상의 요소 를 포함하기에 가장 적합한 수로 설정합니다 .

41 unorder_multimap :: size ()

정렬되지 않은 다중 맵에있는 요소의 수를 반환합니다.

42 unorder_multimap :: swap ()

첫 번째 unorder_multimap의 내용을 다른 것으로 교환합니다.

비 멤버 오버로드 함수

Sr. 아니. 방법 및 설명
1 unorder_multimap :: operator == ()

두 개의 unorder_multimap이 같은지 여부를 테스트합니다.

2 unorder_multimap :: operator! = ()

두 개의 unorder_multimap이 같은지 여부를 테스트합니다.

unorder_multimap :: swap ()

첫 번째 unorder_multimap의 내용을 다른 것으로 교환합니다.