Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL 멀티맵(multimap) clear() 함수 완벽 정리

이 글에서는 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으로 초기화하는 간편한 방법을 제공합니다. 컨테이너를 재사용하거나 메모리를 정리해야 할 때 유용하게 활용할 수 있습니다.