이 글에서는 C++ STL에서 제공하는 map::clear() 함수의 동작 방식, 구문 그리고 실제 활용 예제를 자세히 살펴보겠습니다.
C++ STL에서 맵(Map)이란?
맵(map)은 연관 컨테이너(associative container)의 일종으로, 키(key)와 키에 대응하는 값(mapped value)의 쌍으로 이루어진 요소들을 특정 순서에 따라 저장할 수 있게 해줍니다.
맵 컨테이너는 내부적으로 항상 키를 기준으로 데이터가 정렬되어 관리됩니다. 따라서 저장된 값들은 각각 고유한 키를 통해 빠르고 효율적으로 접근할 수 있습니다.
map::clear() 함수란?
map::clear()는 C++ STL에 내장된 함수로, <map> 헤더 파일에 정의되어 있습니다.
이 함수는 해당 맵 컨테이너에 저장된 모든 요소를 한 번에 삭제하며, 호출이 완료되면 컨테이너의 크기(size)가 0이 됩니다. 즉, 맵을 완전히 비우고 싶을 때 가장 간단하게 사용할 수 있는 방법입니다.
구문(Syntax)
Map_name.clear();
매개변수(Parameter)
이 함수는 어떠한 매개변수도 받지 않습니다.
반환 값(Return Value)
이 함수는 별도의 반환 값이 없습니다(void 타입).
예제
입력
map<char, int> newmap;
newmap['a'] = 1;
newmap['b'] = 2;
newmap['c'] = 3;
newmap.clear();
출력
size of the map is: 0
실전 코드 예제
아래 예제는 두 개의 맵을 생성하고, clear() 함수 호출 전후의 크기 변화를 확인하는 프로그램입니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
map<int, string> TP_1, TP_2;
// 값 삽입
TP_1[1] = "Tutorials";
TP_1[2] = "Point";
TP_1[3] = "is an";
TP_1[4] = "education portal";
// clear() 호출 전 맵 크기 출력
cout<< "Map size before clear() function: \n";
cout << "Size of map1 = "<<TP_1.size() << endl;
cout << "Size of map2 = "<<TP_2.size() << endl;
// clear() 호출로 모든 요소 삭제
TP_1.clear();
TP_2.clear();
// clear() 호출 후 맵 크기 출력
cout<< "Map size after applying clear() function: \n";
cout << "Size of map1 = "<<TP_1.size() << endl;
cout << "Size of map2 = "<<TP_2.size() << endl;
return 0;
}
출력 결과
Map size before clear() function:
Size of map1 = 4
Size of map2 = 0
Map size after applying clear() function:
Size of map1 = 0
Size of map2 = 0
정리
map::clear()는 맵 컨테이너의 모든 요소를 손쉽게 삭제하고 크기를 0으로 초기화하는 유용한 함수입니다. 요소를 하나씩 지우는 erase()와 달리 전체를 한 번에 비울 수 있어, 컨테이너를 재사용하거나 메모리를 정리해야 할 때 효율적으로 활용할 수 있습니다.