C++ STL „쌍”, „맵” 및 „멀티맵” 연관 컨테이너의 설명, 사용 및 예제입니다. STL 연관 컨테이너 클래스는 검색 키가 지정된 요소 값의 검색을 지원하는 가변 크기의 컨테이너입니다. 그런 다음 사용자 지정 비교기를 전달할 수 있습니다. 전체 예제에 대한 다음 문서, std::map 및 비교자 std::map 및 사용자 정의 개체 예: 롤 번호가 키이고 이름이 값인 학생 맵은 다음과 같이 그래픽으로 나타낼 수 있습니다: 스파스 배열 예제: 우리가 가지고있는 모든 다섯 때 요소의 수천) 예를 들어 C ++ 표준 템플릿 라이브러리 (STL)를 가르치는 짧은 책. 참고자료만큼 훌륭하지는 않지만 STL을 빨리 배우고 싶다면 STL을 완전하고 잘 파악하는 데 필요한 모든 개념을 도입하는 데 가장 적합합니다. 이 책은 읽고 따라하기 쉽습니다. 참고: 맵 요소는 순서대로 삽입되었지만 내부 맵 구조에 순서대로 배치되어 순서대로 인쇄됩니다. 이것이 오버로드된 „<" 연산자가 필요한 이유입니다. 오버로드된 "()" 연산자가 있는 대체 친구 클래스가 다음 예제에 표시됩니다. 이 예제에서는 문자열을 MAP 인덱스로 사용하고 개체를 값 쌍으로 사용합니다. STL 컨테이너에 클래스를 저장하려면 기본 생성자가 있어야 하며 클래스는 할당 가능해야 하며 비교 가능하고 같음과 비교할 수 있어야 합니다.

따라서 MAP 컨테이너 사용을 만족시키기 위해 오버로드 = 및 <연산자가 제공됩니다. 주: 완전히 정의된 STL 맵은 인덱스를 정렬할 수 있도록 맵 선언에서 비교 연산자를 정의합니다. 데이터 형식에 대 한 기본 비교 연산자 제공 하는 데 사용 됩니다. 위의 예에서 키 유형은 정수이고 C++ "equals"(=) 및 "이하" 연산자(<)는 정수에서 작동할 수 있으므로 예제가 작동합니다. 지도는 항상 정렬 된 순서로 키를 정렬하기 때문에 키는 오름차순으로 정렬됩니다. 키가 문자열 형식인 경우 사전적으로 정렬됩니다. 또한 std:::map 연산자 [] 즉, 지도가 연관 배열을 복제하는 데 사용됩니다. 맵에는 각 키가 고유하고 변경할 수 없는 정렬된 키-값 쌍이 포함되어 있으며 삽입하거나 삭제할 수 있지만 변경할 수는 없습니다. 키와 연결된 값을 변경할 수 있습니다.

O(n) 시간 복잡성 내에서 맵을 검색, 제거 및 삽입할 수 있습니다. . insert_or_assing()은 지정된 키가 맵에 이미 있는 경우 해당 값이 수정된다는 점을 제외하면 insert()와 정확히 동일하게 작동합니다. 다음은 std:map의 각 항목은 std::pair 따라서 거리로 액세스할 수 있으며, 키는 it->first및 값으로 액세스할 수 있습니다. 키); if(그것은 != mapOfWords.end()) { 값 = it->second; } 방법 1 : 키가 지도에 있는지 확인하면 [] 연산자 즉를 사용하여 직접 액세스하십시오.