상세 컨텐츠

본문 제목

STL :: map ( 마치 vector에 pair를 저장한 것 같은 )

C++/STL

by J2on 2024. 1. 24. 18:50

본문

Map의 기본 개념

  • 키-값 쌍 저장: 키와 값의 쌍을 저장하는 연관 컨테이너. 각 키는 고유하며, 키에 대응하는 값이 저장됨.
  • 자동 정렬: 키를 기준으로 자동으로 정렬. 기본적으로는 오름차순 정렬
  • 빠른 검색 및 삽입: 이진 검색 트리로 구현되어 있어 빠른 검색 및 삽입 속도

기본 사용법

 선언과 초기화

cppCopy code
#include <map>

std::map<int, std::string> myMap; // 빈 map 선언

 원소 삽입

cppCopy code
myMap[1] = "One";
myMap[2] = "Two";
myMap[3] = "Three";

 원소 접근

cppCopy code
std::cout << "키 2에 대응하는 값: " << myMap[2] << std::endl;

 원소 제거

cppCopy code
myMap.erase(2);

 반복문 활용

cppCopy code
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
    std::cout << it->first << ": " << it->second << std::endl;
}

주요 기능

 검색

cppCopy code
auto it = myMap.find(1);
if (it != myMap.end()) {
    std::cout << "키 1에 대응하는 값: " << it->second << std::endl;
} else {
    std::cout << "키 1이 없습니다." << std::endl;
}

 원소 개수

cppCopy code
std::cout << "map 크기: " << myMap.size() << std::endl;

 키의 존재 여부 확인

cppCopy code
if (myMap.count(2) > 0) {
    std::cout << "키 2가 존재합니다." << std::endl;
} else {
    std::cout << "키 2가 존재하지 않습니다." << std::endl;
}

활용 예제

cppCopy code
#include <iostream>#include <map>int main() {
    std::map<int, std::string> myMap = {{3, "Three"}, {1, "One"}, {4, "Four"}, {2, "Two"}};

    std::cout << "Map 내의 원소: ";
    for (const auto& element : myMap) {
        std::cout << element.first << ": " << element.second << " ";
    }

    std::cout << "\\nMap 크기: " << myMap.size() << std::endl;

    return 0;
}

Map의 기본 개념

  • 키-값 쌍 저장: **map**은 키와 값의 쌍을 저장하는 연관 컨테이너입니다. 각 키는 고유하며, 키에 대응하는 값이 저장됩니다.
  • 자동 정렬: **map**은 키를 기준으로 자동으로 정렬됩니다. 기본적으로는 오름차순 정렬이 이루어집니다.
  • 빠른 검색 및 삽입: **map**은 이진 검색 트리로 구현되어 있어 빠른 검색 및 삽입 속도를 제공합니다.

기본 사용법

 선언과 초기화

cppCopy code
#include <map>

std::map<int, std::string> myMap; // 빈 map 선언

 원소 삽입

cppCopy code
myMap[1] = "One";
myMap[2] = "Two";
myMap[3] = "Three";

 원소 접근

cppCopy code
std::cout << "키 2에 대응하는 값: " << myMap[2] << std::endl;

원소 제거

cppCopy code
myMap.erase(2);

반복자 활용

cppCopy code
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
    std::cout << it->first << ": " << it->second << std::endl;
}

주요 기능

 검색

cppCopy code
auto it = myMap.find(1);
if (it != myMap.end()) {
    std::cout << "키 1에 대응하는 값: " << it->second << std::endl;
} else {
    std::cout << "키 1이 없습니다." << std::endl;
}

 원소 개수

cppCopy code
std::cout << "map 크기: " << myMap.size() << std::endl;

 키의 존재 여부 확인

cppCopy code
if (myMap.count(2) > 0) {
    std::cout << "키 2가 존재합니다." << std::endl;
} else {
    std::cout << "키 2가 존재하지 않습니다." << std::endl;
}

 

관련글 더보기

댓글 영역