C++ STL 의 Multiset

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 표준 라이브러리 (STL) 에서 Multiset 을 구현하는 방법을 배웁니다. Multiset 은 고유한 값을 저장한다는 점에서 Set 과 유사하지만, 중복을 허용하고 vector 와 관련된 인덱싱 기능을 제공하지 않는다는 점에서 Set 과 다릅니다.

프로젝트 디렉토리에 C++ 파일 생성

다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.

touch ~/project/main.cpp

헤더 파일 추가

Multiset, 입/출력 스트림, 표준 라이브러리 및 반복자 (Iterator) 에 대한 다음 헤더 파일을 아래 예시와 같이 추가합니다.

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

Multiset 선언

정수 값의 Multiset 을 아래와 같이 선언합니다.

multiset<int> s;

Multiset 에 값 삽입

insert() 메서드를 사용하여 Multiset 에 요소를 삽입합니다. 아래 예시 코드는 5, 39, 5, 82, 39, 54 를 Multiset 에 삽입합니다.

s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);

Multiset 크기 출력 및 순회

size() 속성에 접근하여 Multiset 의 요소 개수를 출력하고, 반복자 (iterator) 를 사용하여 Multiset 의 모든 요소를 순회합니다. 아래 예시를 참조하십시오.

cout << "The number of elements in the Multiset : " << s.size() << "\n";

multiset<int>::iterator it;
cout << "\nElements of the Multiset : ";
for (it = s.begin(); it != s.end(); it++)
    cout << *it << " ";
cout << endl;

X 보다 작은 요소 삭제

erase() 메서드를 사용하여 주어진 x 값보다 작은 모든 요소를 삭제합니다. erase() 메서드는 Multiset 의 시작 부분부터 주어진 값까지의 모든 요소를 삭제하며, 주어진 값을 가진 요소는 제외합니다. 아래 예시를 참조하십시오.

s.erase(s.begin(), s.find(x));

프로그램 실행 및 컴파일

터미널을 사용하여 프로그램을 컴파일합니다. 다음 명령을 사용하여 프로그램을 컴파일합니다.

g++ main.cpp -o main && ./main

출력 확인

프로그램을 성공적으로 실행한 후, 다음과 같은 출력을 얻게 됩니다.

The number of elements in the Multiset : 6

Elements of the Multiset : 5 5 39 39 54 82

요약

이 랩에서는 STL 을 사용하여 C++ 에서 Multiset 에 대한 개요를 제공했습니다. Multiset 을 선언하고, 값을 삽입하고, 해당 메서드를 탐색하는 방법을 다루었습니다. 또한 특정 값보다 작은 요소를 삭제하고 반복자를 사용하여 Multiset 을 순회하는 방법도 배웠습니다. 마지막으로, 터미널을 사용하여 코드를 실행하고 컴파일하여 출력을 확인했습니다.