🔖 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++ 공부에 도움이 되셨길 바라며, 다음 글에서 뵙겠습니다!
'프로그래밍 > C++' 카테고리의 다른 글
C++의 메모리 관리 : 동적 할당, 스마트 포인터 (0) | 2023.09.29 |
---|---|
C++ 함수 포인터 (Function Pointer) (0) | 2023.09.29 |
C++ 서식지정자(Format Specifier) (0) | 2023.09.27 |
C++ 소수점 처리방법 : floor, ceil, round (0) | 2023.07.21 |
C++11 주요 업데이트 : 자동 형변환(Auto Type Deduction) 깊게 알아보기 (0) | 2023.06.27 |
댓글