집합
Coddy의 C++ - 표준 템플릿 라이브러리 코스 레슨. 23개 중 8번째.
이 장에서는 연관 컨테이너(Associative Containers)와 그 작동 방식에 대해 배웁니다. 먼저 set 데이터 구조부터 시작하겠습니다.
C++ Set은 동일한 타입의 고유한 요소를 정렬된 순서로 저장하는 연관 컨테이너의 한 종류입니다. 즉, 각 요소는 세트 내에서 단 한 번만 나타날 수 있습니다.
세트(Sets)는 배열, 정렬 알고리즘, 중복 요소 제거와 같은 다른 데이터 구조를 사용하여 더 많은 시간과 복잡성을 들이지 않고 고유한 요소를 정렬된 상태로 저장해야 할 때 알고리즘 문제 풀이에서 자주 사용됩니다.
set<int> mySet = {5, 10, 3, 5};세트는 #include <set> 헤더 파일을 사용하여 구현하거나, 이전 레슨에서 언급했듯이 #include <bits/stdc++.h>를 사용하여 모든 헤더 파일을 포함할 수 있습니다.
set<int> mySet = {5, 10, 3, 5};
for (int i = mySet.begin(); i != mySet.end(); i++)
cout << *i << " ";Output:
3 5 10위에서 볼 수 있듯이 초기값을 가진 세트를 선언했습니다. 첫 번째 요소를 가리키는 반복자(iterator)를 사용하여 세트를 순회하며 모든 요소를 출력했습니다. 세트 자체가 중복된 요소를 제거하고 가장 작은 것부터 정렬한 것을 확인할 수 있습니다.
set에 요소를 삽입할 때는 insert() 메서드를 사용합니다.
mySet.insert(50);또한, 세트에 추가된 요소의 값은 수정할 수 없으며, 요소를 삭제하고 새로운 요소를 추가하는 것만 가능합니다.
세트 메서드
| 메서드 | 기능 |
| begin() | 세트의 첫 번째 요소를 가리키는 반복자를 반환합니다 |
| end() | 세트의 마지막 요소를 가리키는 반복자를 반환합니다 |
| size() | 세트에 포함된 요소의 개수를 반환합니다 |
| empty() | 세트가 비어 있는지(1) 아닌지(0) 여부를 반환합니다 |
| count() | 요소가 세트에 존재하면 1을, 그렇지 않으면 0을 반환합니다 |
챌린지
쉬움입력으로 10개의 숫자가 주어집니다. set을 사용하여 중복되지 않은 고유한 숫자만 출력하세요.
Input
5
10
1
5
3
5
10
8
6
7Output
5
10
1
3
8
6
7직접 해보기
#include <set>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}C++ - 표준 템플릿 라이브러리의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러