소개
이 랩에서는 C++ 표준 라이브러리 (STL) 에서 Multiset 을 구현하는 방법을 배웁니다. Multiset 은 고유한 값을 저장한다는 점에서 Set 과 유사하지만, 중복을 허용하고 vector 와 관련된 인덱싱 기능을 제공하지 않는다는 점에서 Set 과 다릅니다.
이 랩에서는 C++ 표준 라이브러리 (STL) 에서 Multiset 을 구현하는 방법을 배웁니다. Multiset 은 고유한 값을 저장한다는 점에서 Set 과 유사하지만, 중복을 허용하고 vector 와 관련된 인덱싱 기능을 제공하지 않는다는 점에서 Set 과 다릅니다.
다음 명령을 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.
touch ~/project/main.cpp
Multiset, 입/출력 스트림, 표준 라이브러리 및 반복자 (Iterator) 에 대한 다음 헤더 파일을 아래 예시와 같이 추가합니다.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
정수 값의 Multiset 을 아래와 같이 선언합니다.
multiset<int> s;
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);
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;
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 을 순회하는 방법도 배웠습니다. 마지막으로, 터미널을 사용하여 코드를 실행하고 컴파일하여 출력을 확인했습니다.