C++에서 설정
C++의 세트
설정(설정)
— 추가된 요소를 오름차순으로 자동 정렬하는 컨테이너입니다. 그러나 동일한 값을 추가할 때 set
는 하나의 인스턴스만 저장합니다(multiset
- multiset- 중복을 포함할 수 있음). 세트에 새 요소가 추가되면 정렬 순서를 위반하지 않도록 즉시 제자리에 들어갑니다.
C++의 세트는 set(multiset)
클래스를 통해 STL
표준 템플릿 라이브러리에서 정의됩니다.
세트는 이진 레드-블랙 트리입니다. 검색, 삭제 및 삽입 작업은 대수적 복잡성을 가집니다.
세트를 사용하려면 “
set
” 라이브러리를 포함해야 합니다.
#include <세트>
세트 선언:
set<int> mySet; // 빈 집합을 선언합니다.
multiset mySet; // 빈 다중 집합을 선언합니다.
세트(세트) 작업을 위한 기능
empty()
- 컨테이너에 요소가 없는지 확인
size()
- 컨테이너의 요소 수를 반환합니다.
clear()
- 컨테이너를 지웁니다
insert()
- 요소 삽입
erase()
- 요소 제거
count()
- 주어진 키와 일치하는 요소의 수를 반환합니다.
find()
- 특정 키를 가진 요소 찾기
lower_bound()
- 주어진 값보다 작지 않은 첫 번째 요소에 대한 반복자를 반환합니다.
upper_bound()
- 지정된 값보다 큰 첫 번째 요소에 대한 반복자를 반환합니다.
<사업부>
세트 및 멀티세트 예시
#include <iostream>
#include <세트>
네임스페이스 표준 사용;
정수 메인()
{
set<int> mySet1; // 공집합 선언
multiset mySet2; // 빈 다중 집합 선언
// 세트에 요소 추가
mySet1.삽입(1);
mySet1.insert(2);
mySet1.insert(3);
mySet1.삽입(1);
// multiset에 요소 추가
mySet2.insert(1);
mySet2.insert(2);
mySet2.insert(3);
mySet2.insert(1);
set::iterator it; //이터레이터 생성
for(it = mySet1.begin(); it != mySet1.end(); it++) { // 모든 요소 표시
cout << (*it) << " " // 설정
}
cout << 끝;
for(it = mySet2.begin(); it != mySet2.end(); it++) { // 모든 요소 출력
cout << (*it) << " " // 멀티셋
}
0을 반환합니다.
}
Problem
입력
주어진 숫자
N
(1 <= N <= 100000) – 요청 수. 다음
N
줄에는 문자 ‘
+
’ 또는 ‘
-
’ 및 숫자
a
(1 <= a <= 1000000000). 기호 – ‘
+
’이면 숫자
a
가 집합에 추가되고, 그렇지 않으면 – 이전에 추가된 모든
a
값을 제거합니다.
숫자가 제거되면 세트에 포함된다는 것이 보장됩니다.
출판물
모든 쿼리가 완료된 후 세트의 모든 고유 요소를 오름차순으로 표시하거나 세트에 요소가 없는 경우 "
-1
"로 표시해야 합니다.
예
<헤드>
# |
입력 |
출력 |
것>
<몸>
1 |
<사업부>3사업부>
+1
+2
<사업부>-1사업부>
|
2 |
2 |
<사업부>3사업부>
+1
+1
<사업부>-1사업부>
|
-1 |
3 |
<사업부>3사업부>
+1
+1
+1
|
1 |
테이블>