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

C++ STL set::max_size() 함수 완벽 정리 – 문법, 반환값, 예제 코드

이 글에서는 C++ STL의 set::max_size() 함수가 무엇인지, 어떤 문법으로 사용되고 어떻게 동작하는지, 그리고 어떤 값을 반환하는지 자세히 살펴보겠습니다.

C++ STL에서 Set(집합)이란?

C++ STL에서 Set은 중복 없는 고유한(unique) 요소만을 정렬된 순서로 저장하는 컨테이너입니다. Set의 요소는 그 값 자체가 곧 식별자 역할을 하기 때문에 반드시 고유해야 합니다.

한 번 Set에 추가된 값은 나중에 수정할 수 없습니다. 다만 기존 값을 삭제하거나 새로운 값을 추가하는 것은 언제든 가능합니다. 내부적으로 Set은 이진 탐색 트리(Binary Search Tree) 구조로 구현되어 있어 빠른 검색 성능을 제공합니다.

set::max_size()란 무엇인가?

max_size()는 C++ STL에 내장된 함수로, <set> 헤더 파일에 선언되어 있습니다. 이 함수는 해당 Set 컨테이너가 가질 수 있는 최대 크기(maximum size)를 반환합니다.

즉, 컨테이너가 이론상 도달할 수 있는 최대 크기를 의미합니다. 다만 실제로 그 크기만큼의 메모리 할당이 항상 보장되는 것은 아니며, 시스템 상황에 따라 특정 시점에 저장 공간 할당에 실패할 수도 있습니다.

문법(Syntax)

name_of_set.max_size();

매개변수(Parameter)

이 함수는 어떠한 매개변수도 받지 않습니다.

반환값(Return Value)

연관된 Set 컨테이너가 담을 수 있는 최대 요소 개수를 반환합니다.

예제 1

입력: set<int> myset;
myset.max_size();
출력: 요소 삽입 전 Set의 크기: 461168601842738790

예제 2

#include <bits/stdc++.h>
using namespace std;
int main(){
    set<int> data_1, data_2;
    data_1.insert(100);
    cout<<"요소 삽입 후 Set의 max_size : "<<data_1.max_size()<< endl;
    cout<<"요소 삽입 전 Set의 max_size : "<<data_2.max_size();
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

요소 삽입 후 Set의 max_size : 461168601842738790
요소 삽입 전 Set의 max_size : 461168601842738790

위 결과에서 볼 수 있듯이, max_size()는 현재 저장된 요소 개수와 무관하게 항상 동일한 최댓값을 반환합니다.

예제 3

#include <iostream>
#include <set>
int main (){
    int i;
    std::set<int> Set;
    if(Set.max_size()>1000){
        for (i=0; i<=1000; i++)
            Set.insert(i);
        std::cout<<"Set에 1000개의 요소가 들어갔습니다.\n";
    }
    else
        std::cout<<"Set에 1000개의 요소를 담을 수 없습니다.\n";
    return 0;
}

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

Set에 1000개의 요소가 들어갔습니다.

이처럼 max_size()를 활용하면 요소를 삽입하기 전에 해당 개수가 컨테이너의 최대 용량 범위 내에 있는지 미리 확인할 수 있습니다.