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

C++ STL multiset max_size() 함수 완벽 정리: 개념부터 예제 코드까지

이 튜토리얼에서는 C++ STL에서 제공하는 multiset 컨테이너의 max_size() 함수에 대해 자세히 알아보겠습니다.

max_size() 함수란?

max_size()는 해당 컨테이너가 시스템 환경 및 라이브러리 구현에 따라 저장할 수 있는 이론상 최대 요소 개수를 반환하는 함수입니다. 이 값은 실제 사용 가능한 메모리 양에 따라 달라질 수 있으며, 프로그램 실행 중에는 일반적으로 일정하게 유지됩니다.

참고로 size()가 현재 실제로 저장된 요소의 개수를 반환한다면, max_size()는 컨테이너가 담을 수 있는 상한선을 의미합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;

int main(){
    multiset<int> s;
    s.insert(10);
    s.insert(13);
    s.insert(13);
    s.insert(25);
    s.insert(24);

    cout << "multiset의 요소들: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";

    cout << "\nmultiset의 max_size: " << s.max_size();
    return 0;
}

실행 결과

multiset의 요소들: 10 13 13 24 25
multiset의 max_size: 461168601842738790

코드 설명

위 예제에서는 int형 multiset을 생성한 뒤 다섯 개의 값을 삽입했습니다. 이때 13은 두 번 삽입되었는데도 중복 없이 그대로 저장되는 것을 확인할 수 있습니다. 이것이 multiset이 set과 다른 핵심 특징으로, 동일한 값을 여러 개 허용하며 항상 오름차순으로 정렬된 상태를 유지합니다.

출력 결과를 보면 max_size 값이 약 4.6×10¹⁷으로 매우 큰 숫자인데, 이는 64비트 시스템에서 할당 가능한 이론적 최대 크기를 나타냅니다. 따라서 실제 코딩 테스트나 일반적인 프로그래밍에서는 이 한계에 도달할 걱정 없이 자유롭게 요소를 추가할 수 있습니다.