Menu
CoddyTech

집합

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을 반환합니다
challenge icon

챌린지

쉬움

입력으로 10개의 숫자가 주어집니다. set을 사용하여 중복되지 않은 고유한 숫자만 출력하세요.

 

Input
5
10
1
5
3
5
10
8
6
7
Output
5
10
1
3
8
6
7

직접 해보기

#include <set>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

C++ - 표준 템플릿 라이브러리의 모든 레슨

직접 연습해 보세요: 온라인 C++ 컴파일러