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의 내용으로 교환합니다. |