본문 바로가기
프로그래밍/C++

C++에서 std::map의 항목 지우는 방법 알아보기

by 머니테크리더 2023. 6. 19.
반응형

C++에서 std::map 항목 지우는 방법 알아보기 설명 이미지
C++에서 std::map 항목 지우는 방법 알아보기 설명 이미지

🔖 INDEX

     

     

    안녕하세요, 여러분! 오늘은 C++의 중요한 컨테이너 중 하나인 std::map에서 항목을 지우는 방법에 대해 알아보려 합니다. std::map은 키(key)와 값(value)을 한 쌍으로 하는 데이터를 저장하는 연관 컨테이너입니다. 이런 특성 덕분에, 데이터를 효율적으로 저장하고 찾는 데 큰 도움이 됩니다. 그러나 때로는 std::map에 저장된 항목 중 일부를 지워야 할 때가 있습니다. 그런 상황에서 필요한 std::map의 erase 함수에 대해 알아봅시다.

     

    키를 이용한 항목 삭제

    가장 일반적인 방법은 키를 이용해 항목을 삭제하는 것입니다. erase 함수에 삭제하고 싶은 항목의 키를 인자로 전달하면 됩니다.

    std::map<int, std::string> m;
    // map에 아이템 추가
    m[1] = "one";
    m[2] = "two";
    m[3] = "three";
    // key를 사용하여 항목 제거
    m.erase(2);

    위 코드를 실행하면 m에서 key가 2인 항목이 제거됩니다.

     

     

    이터레이터를 이용한 항목 삭제

    또 다른 방법은 이터레이터를 사용하는 것입니다. find 함수로 원하는 키를 가진 항목의 이터레이터를 찾아 erase 함수에 전달하면 해당 항목을 지울 수 있습니다.

    std::map<int, std::string> m;
    // map에 아이템 추가
    m[1] = "one";
    m[2] = "two";
    m[3] = "three";
    // iterator를 사용하여 항목 제거
    auto it = m.find(2);
    if(it != m.end()) // 항목이 존재하면
        m.erase(it);

    위 코드도 마찬가지로 m에서 key가 2인 항목을 제거합니다.

     

    범위를 이용한 항목 삭제

    마지막으로, erase 함수는 범위를 지정해 그 범위 내의 모든 항목을 지우는 것도 가능합니다. 이 때는 시작 이터레이터와 끝 이터레이터를 인자로 전달합니다.

    std::map<int, std::string> m;
    // map에 아이템 추가
    m[1] = "one";
    m[2] = "two";
    m[3] = "three";
    m[4] = "four";
    // 범위를 사용하여 항목 제거
    auto it1 = m.find(2);
    auto it2 = m.find(4);
    m.erase(it1, it2);

    이 코드를 실행하면 key가 2와 3인 항목이 m에서 제거됩니다. 범위 지정시, 시작 이터레이터는 범위에 포함되고, 종료 이터레이터는 범위에 포함되지 않습니다.

     

    지금까지 C++에서 std::map에서 항목을 지우는 방법에 대해 알아보았습니다. C++ 공부에 도움이 되셨길 바라며, 다음 글에서 뵙겠습니다!

     

     

    댓글