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

지도 소개

지도는 데이터 구조와 같은 사전입니다. (키, 값) 쌍의 시퀀스로, 단일 값만 각 고유 키와 연결됩니다. 종종 연관 배열 이라고 합니다.

일반적으로 요소를 정렬하는 데 사용되는 맵 키 값입니다. 지도의 경우 키와 값의 데이터 유형이 다를 수 있으며 다음과 같이 표시됩니다.

typedef pair<const Key, T> value_type;

맵은 일반적으로 이진 검색 트리로 구현됩니다.

크기가 0 인지도도 유효합니다. 이 경우 map.begin () 및 map.end ()는 동일한 위치를 가리 킵니다.

정의

다음은 <map> 헤더 파일의 std :: map 정의입니다.

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class map;

매개 변수

  • Key − 키 유형.

  • T − 매핑 된 값의 유형.

  • Compare − 두 개의 요소 키를 인수로 취하고 bool을 반환하는 이진 술어.

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

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

회원 유형

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

Sr. 아니. 회원 유형 정의
1 key_type 키 (템플릿의 첫 번째 매개 변수)
2 매핑 된 _ 유형 T (템플릿의 두 번째 매개 변수)
key_compare 비교 (템플릿의 세 번째 매개 변수)
4 할당 자 _ 유형 Alloc (템플릿의 네 번째 매개 변수)
5 값 _ 유형 쌍 <const key_type, mapped_type>
6 value_compare 요소를 비교하기위한 중첩 함수 클래스
7 참고 allocator_type :: reference
8 const_reference allocator_type :: const_reference
9 바늘 allocator_type :: pointer
10 const_pointer allocator_type :: const_pointer
11 반복자 value_type에 대한 양방향 반복기
12 const_iterator const value_type에 대한 양방향 반복기
13 reverse_iterator 역 반복자
14 const_reverse_iterator 상수 역방향 반복자
15 차이 _ 유형 ptrdiff_t
16 크기 유형 size_t

<지도>의 기능

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

생성자

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

요소가없는 빈지도를 생성합니다.

2 map :: map 범위 생성자

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

map :: map 복사 생성자

기존지도에있는 각 요소의 복사본으로지도를 구성합니다.

4 map :: map 이동 생성자

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

5 map :: map 이니셜 라이저 목록 생성자

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

폐물 소각로

Sr. 아니. 방법 및 설명
1 지도 :: ~지도

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

회원 기능

Sr. 아니. 방법 및 설명
1 map :: at

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

2 map :: begin

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

map :: cbegin

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

4 map :: cend

지도의 마지막 요소 를 가리키는 상수 반복기를 반환합니다 .

5 지도 :: 지우기

모든 요소를 ​​제거하여지도를 파괴하고지도 크기를 0으로 설정합니다.

6 map :: count

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

7 map :: crbegin

컨테이너 i의 마지막 요소를 가리키는 상수 역방향 반복기를 반환합니다.

8 map :: crend

컨테이너 i에서 첫 번째 요소 이전의 이론적 요소를 가리키는 상수 역방향 반복기를 반환합니다.

9 map :: emplace

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

10 map :: emplace_hint 힌트 버전

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

11 map :: empty

지도가 비어 있는지 여부를 테스트합니다.

12 map :: end

지도에서 마지막 요소 를 가리키는 반복기를 반환합니다 .

13 map :: equal_range

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

14 맵 :: 지우기 위치 버전

위치 에서지도의 단일 요소를 제거합니다 .

15 맵 :: 지우기 위치 버전

위치 에서지도의 단일 요소를 제거합니다 .

16 맵 :: 지우기

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

17 맵 :: 지우기 범위 버전

지도에서 요소 범위를 제거합니다.

18 맵 :: 지우기 범위 버전

지도에서 요소 범위를 제거합니다.

19 지도 :: 찾기

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

20 map :: get_allocator

지도와 관련된 할당자를 반환합니다.

21 맵 :: 단일 요소 삽입

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

22 맵 :: 힌트 버전 삽입

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

23 맵 :: 범위 버전 삽입

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

24 맵 :: 이동 힌트 버전 삽입

새 요소를 삽입하여지도를 확장합니다.

25 map :: insert initializer 목록 버전

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

26 map :: key_comp

이 컨테이너의 생성자 인수 comp 의 복사 본인 키를 비교하는 함수 객체를 반환합니다 .

27 map :: lower_bound

k 이상인 첫 번째 요소를 가리키는 반복기를 반환합니다 .

28 map :: max_size

지도가 보유 할 수있는 최대 요소 수를 반환합니다.

29 map :: operator = 복사 버전

이전 콘텐츠를 교체하여지도에 새 콘텐츠를 할당하고 필요한 경우 크기를 수정합니다.

30 map :: operator = 버전 이동

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

31 map :: operator = 이니셜 라이저 목록 버전

이니셜 라이저 목록에서 맵으로 요소를 복사합니다.

32 map :: operator [] 사본 버전

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

33 map :: operator [] 버전 이동

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

34 map :: rbegin

지도의 마지막 요소를 가리키는 역방향 반복기를 반환합니다.

35 map :: rend

맵 i의 반대 끝을 가리키는 역방향 반복기를 반환합니다.

36 map :: size

지도에있는 요소의 수를 반환합니다.

37 map :: swap

맵의 내용을 맵 x의 내용과 교환합니다.

38 map :: upper_bound

k 보다 큰 첫 번째 요소를 가리키는 반복기를 반환합니다 .

39 map :: value_comp

std :: map :: value_type 유형의 객체를 비교하는 함수 객체를 반환합니다 .

비 멤버 오버로드 함수

Sr. 아니. 방법 및 설명
1 연산자 ==

두 맵이 같은지 여부를 테스트합니다.

2 연산자! =

두 맵이 같은지 여부를 테스트합니다.

연산자 <

첫 번째 맵이 다른 맵보다 작은 지 여부를 테스트합니다.

4 map :: operator <=

첫 번째 맵이 다른 맵보다 작거나 같은지 여부를 테스트합니다.

5 연산자>

첫 번째 맵이 다른 맵보다 큰지 여부를 테스트합니다.

6 연산자> =

첫 번째 맵이 다른 맵보다 크거나 같은지 여부를 테스트합니다.

7 교환()

맵의 내용을 맵 x의 내용과 교환합니다.

멀티 맵 소개

멀티 맵은 데이터 구조와 같은 사전입니다. 여러 값이 동등한 키와 연관 될 수있는 (키, 값) 쌍 의 시퀀스입니다 . 종종 연관 배열 이라고 합니다.

일반적으로 요소를 정렬하는 데 사용되는 멀티 맵 키 값. 멀티 맵의 경우 키와 값의 데이터 유형이 다를 수 있으며 다음과 같이 표시됩니다.

typedef pair<const Key, T> value_type;

멀티 맵은 일반적으로 이진 검색 트리로 구현됩니다.

크기가 0 인 멀티 맵도 유효합니다. 이 경우 multimap.begin () 및 multimap.end ()는 동일한 위치를 가리 킵니다.

정의

다음은 <multimap> 헤더 파일의 std :: multimap 정의입니다.

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class multimap;

매개 변수

  • Key − 키 유형.

  • T − 매핑 된 값의 유형.

  • Compare − 두 개의 요소 키를 인수로 취하고 bool을 반환하는 이진 술어.

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

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

회원 유형

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

Sr. 아니. 회원 유형 정의
1 key_type 키 (템플릿의 첫 번째 매개 변수)
2 매핑 된 _ 유형 T (템플릿의 두 번째 매개 변수)
key_compare 비교 (템플릿의 세 번째 매개 변수)
4 할당 자 _ 유형 Alloc (템플릿의 네 번째 매개 변수)
5 값 _ 유형 쌍 <const key_type, mapped_type>
6 value_compare 요소를 비교하기위한 중첩 함수 클래스
7 참고 allocator_type :: reference
8 const_reference allocator_type :: const_reference
9 바늘 allocator_type :: pointer
10 const_pointer allocator_type :: const_pointer
11 반복자 value_type에 대한 양방향 반복기
12 const_iterator const value_type에 대한 양방향 반복기
13 reverse_iterator 역 반복자
14 const_reverse_iterator 상수 역방향 반복자
15 차이 _ 유형 ptrdiff_t
16 크기 유형 size_t

<멀티 맵>의 기능

다음은 <multimap> 헤더의 모든 메소드 목록입니다.

생성자

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

요소가없는 빈 멀티 맵을 생성합니다.

2 멀티 맵 :: 멀티 맵 범위 생성자

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

멀티 맵 :: 멀티 맵 복사 생성자

기존 멀티 맵에있는 각 요소의 복사본으로 멀티 맵을 구성합니다.

4 멀티 맵 :: 멀티 맵 이동 생성자

이동 시맨틱을 사용하여 other의 컨텐츠로 멀티 맵을 구성합니다.

5 multimap :: multimap 이니셜 라이저 목록 생성자

초기화 목록에서 멀티 맵을 생성합니다.

폐물 소각로

Sr. 아니. 방법 및 설명
1 멀티 맵 :: ~ 멀티 맵

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

회원 기능

Sr. 아니. 방법 및 설명
1 멀티 맵 :: 시작

멀티 맵의 첫 번째 요소를 참조하는 반복기를 반환합니다.

2 멀티 맵 :: cbegin

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

멀티 맵 :: cend

멀티 맵의 마지막 요소 를 가리키는 상수 반복기를 반환합니다 .

4 멀티 맵 :: 지우기

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

5 멀티 맵 :: 개수

k 키와 관련된 멀티 맵 값의 수를 반환합니다 .

6 멀티 맵 :: crbegin

컨테이너의 마지막 요소를 가리키는 상수 역방향 반복기를 반환합니다.

7 멀티 맵 :: crend

컨테이너의 첫 번째 요소 앞에있는 이론적 요소를 가리키는 상수 역방향 반복기를 반환합니다.

8 멀티 맵 :: emplace

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

9 multimap :: emplace_hint 힌트 버전

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

10 멀티 맵 :: 비어 있음

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

11 멀티 맵 :: 끝

멀티 맵에서 마지막 요소 를 가리키는 반복기를 반환합니다 .

12 multimap :: equal_range

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

13 멀티 맵 :: 위치 버전 지우기

위치 에서 멀티 맵의 단일 요소를 제거합니다 .

14 멀티 맵 :: 위치 버전 지우기

위치 에서 멀티 맵의 단일 요소를 제거합니다 .

15 멀티 맵 :: 지우기

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

16 멀티 맵 :: 지우기 범위 버전

멀티 맵에서 요소 범위를 제거합니다.

17 멀티 맵 :: 지우기 범위 버전

멀티 맵에서 요소 범위를 제거합니다.

18 멀티 맵 :: 찾기

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

19 multimap :: get_allocator

멀티 맵과 관련된 할당자를 반환합니다.

20 멀티 맵 :: 단일 요소 삽입

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

21 멀티 맵 :: 힌트 버전 삽입

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

22 멀티 맵 :: 범위 버전 삽입

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

23 멀티 맵 :: 이동 힌트 버전 삽입

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

24 멀티 맵 :: 초기화 목록 버전 삽입

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

25 멀티 맵 :: key_comp

이 컨테이너의 생성자 인수 comp 의 복사 본인 키를 비교하는 함수 객체를 반환합니다 .

26 multimap :: lower_bound

k 이상인 첫 번째 요소를 가리키는 반복기를 반환합니다 .

27 멀티 맵 :: 최대 _ 크기

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

28 multimap :: operator = 복사 버전

기존 콘텐츠를 교체하여 멀티 맵에 새 콘텐츠를 할당하고 필요한 경우 크기를 수정합니다.

29 multimap :: operator = 버전 이동

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

30 multimap :: operator = 이니셜 라이저 목록 버전

이니셜 라이저 목록에서 멀티 맵으로 요소를 복사합니다.

31 멀티 맵 :: rbegin

멀티 맵의 마지막 요소를 가리키는 역방향 반복기를 반환합니다.

32 멀티 맵 :: 렌드

멀티 맵의 반대 끝을 가리키는 역방향 반복기를 반환합니다.

33 멀티 맵 :: 크기

멀티 맵에있는 요소의 수를 반환합니다.

34 멀티 맵 :: 스왑

멀티 맵의 내용을 멀티 맵 x의 내용으로 교환합니다.

35 multimap :: upper_bound

k 보다 큰 첫 번째 요소를 가리키는 반복기를 반환합니다 .

36 multimap :: value_comp

std :: multimap :: value_type 유형의 객체를 비교하는 함수 객체를 반환합니다 .

비 멤버 오버로드 함수

Sr. 아니. 방법 및 설명
1 연산자 ==

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

2 연산자! =

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

연산자 <

첫 번째 멀티 맵이 다른 것보다 작은 지 여부를 테스트합니다.

4 멀티 맵 :: 연산자 <=

첫 번째 멀티 맵이 다른 멀티 맵보다 작거나 같은지 여부를 테스트합니다.

5 연산자>

첫 번째 멀티 맵이 다른 것보다 큰지 여부를 테스트합니다.

6 연산자> =

첫 번째 멀티 맵이 다른 멀티 맵보다 크거나 같은지 여부를 테스트합니다.

7 교환()

멀티 맵의 내용을 멀티 맵 x의 내용으로 교환합니다.