이 글에서는 C++ STL에서 multimap::clear() 함수의 동작 방식, 문법, 그리고 실제 활용 예제를 자세히 살펴봅니다.
C++ STL의 멀티맵(Multimap)이란?
멀티맵은 맵(map) 컨테이너와 유사한 연관 컨테이너(associative container)입니다. 키(key)와 값(value)의 조합으로 이루어진 요소들을 특정 순서에 따라 저장할 수 있습니다. 일반적인 맵과 달리, 멀티맵에서는 동일한 키에 여러 개의 요소를 연결할 수 있다는 점이 가장 큰 특징입니다. 또한 내부적으로 데이터는 항상 키를 기준으로 정렬된 상태로 유지됩니다.
multimap::clear()란 무엇인가?
multimap::clear() 함수는 C++ STL에 내장된 함수로, <map> 헤더 파일에 정의되어 있습니다. clear()는 해당 멀티맵 컨테이너에 저장된 모든 요소를 제거하는 데 사용됩니다. 함수가 실행되면 컨테이너의 모든 값이 삭제되고, 컨테이너의 크기(size)는 0이 됩니다.
문법
Map_name.clear();
매개변수
이 함수는 어떠한 매개변수도 받지 않습니다.
반환 값
이 함수는 반환 값이 없습니다(void).
참고: 시간 복잡도
clear() 함수의 시간 복잡도는 컨테이너의 크기에 비례하는 O(n)입니다. 즉, 저장된 요소가 많을수록 삭제에 더 많은 시간이 소요됩니다.
간단한 입력 예시
입력
multimap<char, int> newmap;
newmap.insert(make_pair('a', 1));
newmap.insert(make_pair('b', 2));
newmap.insert(make_pair('c', 3));
newmap.clear();
출력
멀티맵의 크기: 0
실전 예제 코드
#include<iostream>
#include<map>
using namespace std;
int main(){
multimap<int,int> mul_1;
// 멀티맵에 요소 삽입
mul_1.insert({1,10});
mul_1.insert({2,20});
mul_1.insert({3,30});
mul_1.insert({4,40});
mul_1.insert({5,50});
cout << "clear 함수 호출 전 멀티맵 크기 : ";
cout << mul_1.size() << '\n';
mul_1.clear();
cout << "clear 함수 호출 후 멀티맵 크기 : ";
cout << mul_1.size() << '\n';
}
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
clear 함수 호출 전 멀티맵 크기 : 5
clear 함수 호출 후 멀티맵 크기 : 0
정리
multimap::clear() 함수는 별도의 매개변수나 반환 값 없이, 멀티맵 컨테이너의 모든 요소를 한 번에 삭제하고 크기를 0으로 초기화하는 간편한 방법을 제공합니다. 컨테이너를 재사용하거나 메모리를 정리해야 할 때 유용하게 활용할 수 있습니다.