English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
map은 C ++ STL(표준 템플릿 라이브러리)의 일부입니다. map은 정렬된 키-값 쌍을 저장하는 연관 컨테이너로, 각 키는 유일하며 추가나 제거할 수 있지만 변경할 수 없습니다. 그러나 키와 연결된 값은 변경할 수 있습니다.
예를 들어:직원 ID가 키이고 이름이 값인 직원 map 컨테이너는 다음과 같이 표현될 수 있습니다:
키 | 값 |
---|---|
101 | Nikita |
102 | Robin |
103 | Deep |
104 | John |
template < class Key,</ //map::key_type class T,</ //map::mapped_type class Compare = less,</ //map::key_compare class Alloc = allocator<pair> //map::allocator_type > class map;
key:map에 저장할 키의 데이터 타입.
type:map에 저장할 값의 데이터 타입.
compare:두 bool 타입의 파라미터를 받아 두 값이 같은지 비교하고, 값을 반환하는 클래스. 이 파라미터는 선택 사항이며 기본 값은 less <"key">입니다.
alloc:alloc자 객체의 타입. 이 파라미터는 선택 사항이며 기본 값은 alloc입니다.
다음 문장을 사용하여 map를 쉽게 생성할 수 있습니다:
typedef pair<const Key, T> value_type;
위 문장은 다음과 같은 키 타입을 생성하려고 사용됩니다:Key 타입및value 값형식value_type의 map.중요한 점은, map의 키와 해당 값이 항상 짝으로 삽입되며, map에 단순히 키만 삽입하거나 값만 삽입할 수 없습니다.
#include <string.h> #include <iostream> #include <map> #include <utility> using namespace std; int main() { mapEmployees; // 1) 사용하여 배열 인덱싱 기호로 대입 Employees[101] = "Nikita"; Employees[105] = "John"; Employees[103] = "Dolly"; Employees[104] = "Deep"; Employees[102] = "Aman"; cout << "Employees[104] = << Employees[104] << endl << endl; cout << "Map 크기: " << Employees.size() << endl; cout << endl << "자연 순서:" << endl; for(map::iterator ii = Employees.begin(); ii != Employees.end(); ++ii) { cout << (*ii).first << ": " << (*ii).second << endl; } cout << endl << "반대 순서:" << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ": " << (*ii).second << endl; } }
출력:
Employees[104=Deep Map 크기: 5 자연 순서: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John 반대 순서: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
이하는 맵의 모든 멤버 함수 목록입니다:
함수 | 설명 |
---|---|
constructors | 맵 생성 |
destructors | 맵 파괴 함수 |
operator= | 맵 요소를 다른 맵 컨테이너에 복사합니다. |
함수 | 설명 |
---|---|
begin | 맵 중 첫 번째 요소를 가진 이터레이터를 반환합니다. |
cbegin | 맵 중 첫 번째 요소를 가진 상수 이터레이터를 반환합니다. |
end | 끝 지점을 가진 이터레이터를 반환합니다. |
cend | 끝 지점을 가진 상수 이터레이터를 반환합니다. |
rbegin | 끝 지점을 가진 반대 이터레이터를 반환합니다. |
rend | 시작 지점을 가진 반대 이터레이터를 반환합니다. |
crbegin | 끝 지점을 가진 상수 반대 이터레이터를 반환합니다. |
crend | 시작 지점을 가진 상수 반대 이터레이터를 반환합니다. |
함수 | 설명 |
---|---|
empty | 맵이 비어 있으면 true를 반환합니다. |
size | 맵에 있는 요소의 개수를 반환합니다. |
max_size | 맵의 최대 용량을 반환합니다. |
함수 | 설명 |
---|---|
operator[] | 주어진 키를 사용하여 요소를 검색합니다. |
at | 주어진 키를 사용하여 요소를 검색합니다. |
함수 | 설명 |
---|---|
insert | 맵에 요소를 삽입합니다. |
erase | 맵에서 요소를 지웁니다. |
swap | 맵의 내용을 교환합니다. |
clear | 맵의 모든 요소를 제거합니다. |
emplace | 새로운 요소를 생성하고 맵에 삽입합니다. |
emplace_hint | 인디케이터를 사용하여 새로운 요소를 생성하고 맵에 삽입합니다. |
함수 | 설명 |
---|---|
key_comp | 키 비교 객체의 복제본을 반환합니다. |
value_comp | 가치 비교 객체의 복제본을 반환합니다. |
함수 | 설명 |
---|---|
find | 검색된 키를 가진 요소를 검색합니다. |
count | 검색된 키와 일치하는 요소의 개수를 얻습니다. |
lower_bound | 하한에 대한 이터레이터를 반환합니다. |
upper_bound | 상한에 대한 이터레이터를 반환합니다. |
equal_range | 검색된 키와 일치하는 요소 범위를 반환합니다. |
함수 | 설명 |
---|---|
get_allocator | map을 생성하는 데 사용되는 할당자 객체를 반환합니다。 |
함수 | 설명 |
---|---|
operator== | 두 개의 map이 같은지 확인합니다。 |
operator!= | 두 개의 map이 같은지 확인합니다。 |
operator< | 첫 번째 map이 다른 map보다 작은지 확인합니다。 |
operator<= | 첫 번째 map이 다른 map보다 작거나 같은지 확인합니다。 |
operator> | 첫 번째 map이 다른 map보다 큰지 확인합니다。 |
operator>= | 첫 번째 map이 다른 map보다 큰지 확인합니다。 |
swap() | 두 개의 map의 요소를 교환합니다。 |