맵은 C++ STL(표준 템플릿 라이브러리)의 일부입니다. 맵은 정렬된 키-값 쌍을 저장하는 연관 컨테이너입니다. 각 키는 고유하며 삽입 또는 삭제할 수 있지만 변경할 수는 없습니다. 키와 관련된 값은 변경될 수 있습니다.
예를 들어: 직원 ID가 키이고 이름이 값인 직원 맵은 다음과 같이 나타낼 수 있습니다.
int로 변환
열쇠 | 가치 |
---|---|
101 | 니키타 |
102 | 남자 이름 |
103 | 깊은 |
104 | 남자 |
통사론
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
매개변수
열쇠: 맵에 저장될 주요 데이터 유형입니다.
유형: 맵에 저장될 값의 데이터 유형입니다.
비교하다: 동일한 유형 bool의 두 인수를 사용하고 값을 반환하는 비교 클래스입니다. 이 인수는 선택 사항이며 이진 조건자 less가 기본값입니다.
할당: 할당자 개체의 유형입니다. 이 인수는 선택 사항이며 기본값은 allocator 입니다.
int에서 문자열로
지도 만들기
다음 명령문을 사용하여 지도를 쉽게 만들 수 있습니다.
typedef pair value_type;
위 양식은 유형의 키를 사용하여 맵을 생성하는 데 사용됩니다. 키 유형 유형의 값 값 유형. 한 가지 중요한 점은 맵의 키와 해당 값이 항상 쌍으로 삽입된다는 점입니다. 맵에 키만 삽입하거나 값만 삽입할 수는 없습니다.
실시예 1
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
산출:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
회원 기능
다음은 map의 모든 멤버 함수 목록입니다.
건설자/파괴자
기능 | 설명 |
---|---|
생성자 | 지도 구축 |
구축함 | 지도 소멸자 |
연산자= | 지도의 요소를 다른 지도에 복사합니다. |
반복자
기능 | 설명 |
---|---|
시작하다 | 맵의 첫 번째 요소를 가리키는 반복자를 반환합니다. |
cbegin | 맵의 첫 번째 요소를 가리키는 const 반복자를 반환합니다. |
끝 | 과거 끝을 가리키는 반복자를 반환합니다. |
몇 가지 | 과거 끝을 가리키는 상수 반복자를 반환합니다. |
rbegin | 끝을 가리키는 역방향 반복자를 반환합니다. |
만든다 | 시작 부분을 가리키는 역방향 반복자를 반환합니다. |
크립긴 | 끝을 가리키는 상수 역방향 반복자를 반환합니다. |
믿다 | 시작 부분을 가리키는 상수 역방향 반복자를 반환합니다. |
용량
기능 | 설명 |
---|---|
비어 있는 | 지도가 비어 있으면 true를 반환합니다. |
크기 | 맵의 요소 수를 반환합니다. |
최대 크기 | 지도의 최대 크기를 반환합니다. |
요소 액세스
기능 | 설명 |
---|---|
운영자[] | 주어진 키를 사용하여 요소를 검색합니다. |
~에 | 주어진 키를 사용하여 요소를 검색합니다. |
수정자
기능 | 설명 |
---|---|
끼워 넣다 | 지도에 요소를 삽입합니다. |
삭제 | 지도에서 요소를 삭제합니다. |
교환 | 지도의 내용을 교환합니다. |
분명한 | 지도의 모든 요소를 삭제합니다. |
위치 | 새 요소를 구성하고 지도에 삽입합니다. |
emplace_hint | 힌트를 사용하여 새 요소를 맵에 구성하고 삽입합니다. |
관찰자
기능 | 설명 |
---|---|
key_comp | 키 비교 객체의 복사본을 반환합니다. |
value_comp | 값 비교 객체의 복사본을 반환합니다. |
운영
기능 | 설명 |
---|---|
찾다 | 주어진 키를 사용하여 요소를 검색합니다. |
세다 | 주어진 키와 일치하는 요소의 수를 가져옵니다. |
하한 | 하한값에 대한 반복자를 반환합니다. |
상한 | 반복자를 상한으로 반환합니다. |
같음_범위 | 주어진 키와 일치하는 요소의 범위를 반환합니다. |
할당자
기능 | 설명 |
---|---|
get_allocator | 맵을 구성하는 데 사용되는 할당자 개체를 반환합니다. |
비멤버 오버로드 함수
기능 | 설명 |
---|---|
연산자== | 두 맵이 동일한지 여부를 확인합니다. |
연산자!= | 두 맵이 동일한지 여부를 확인합니다. |
연산자< | 첫 번째 지도가 다른 지도보다 작은지 여부를 확인합니다. |
운영자<=< td> | 첫 번째 지도가 다른 지도보다 작거나 같은지 확인합니다. | =<>
운영자> | 첫 번째 지도가 다른 지도보다 큰지 여부를 확인합니다. |
연산자>= | 첫 번째 지도가 다른 지도보다 큰지 여부를 확인합니다. |
교환() | 두 지도의 요소를 교환합니다. |