set stl
간단한 예제로 STL에서 SET을 빠르게 배우십시오.
이 튜토리얼에서 STL 컨테이너 – 세트에 대해 자세히 살펴 보겠습니다. 세트는 특정 순서로 고유 한 요소가있는 연관 컨테이너입니다.
집합의 요소 값은 액세스하는 데 사용되는 키이기도합니다. 세트의 모든 요소는 고유해야합니다. 일단 삽입 된 세트의 요소는 수정할 수 없습니다. 그러나 요소를 삽입하거나 삭제할 수 있습니다.
=> 완전한 C ++ 무료 교육 시리즈는 여기에서 확인하십시오.
학습 내용 :
STL에서 설정
세트를 구현하려면 프로그램에 헤더를 포함해야합니다.
컴퓨터 문제 해결을위한 최고의 소프트웨어
#include
다음과 같이 집합을 선언 할 수 있습니다.
set myset;
예를 들어정수 유형을 가진 요소의 myset 세트를 원하면 다음과 같이 세트를 선언 할 수 있습니다.
set myset;
세트 작업
set 컨테이너는 이미 논의한 맵과 같은 유사한 작업도 지원합니다. 다음은 set에서 지원하는 몇 가지 기본 작업입니다.
- 시작하다 : 집합의 첫 번째 요소에 대한 반복기를 반환합니다.
- 종료 : 집합의 마지막 요소 뒤에 오는 요소에 대한 반복기를 반환합니다.
- 끼워 넣다 : 세트에 새 요소를 삽입합니다.
세트에 대한 삽입 작업에는 세 가지 변형이 있습니다.
-
-
- 삽입 (요소) : 이는 세트에 요소를 직접 삽입하고 세트를 재정렬합니다.
- 삽입 (위치, 힌트) : 여기에서 요소를 삽입 할 위치를 지정합니다.
- insert (iterator.begin (), iterator.end ()) : 이 변형에서는 배열이나 다른 집합처럼 범위를 집합에 직접 삽입 할 수 있습니다.
-
- 삭제 : 세트에서 요소를 제거합니다.
- 크기 : 세트의 크기를 반환합니다.
- max_size : 세트가 보유 할 수있는 최대 크기를 반환합니다.
- 빈 : 세트가 비어 있는지 여부를 반환합니다.
- 맑은 : 세트에서 모든 요소를 제거합니다.
- 찾기 : 세트에서 요소를 찾습니다. 요소가 발견되면 세트의 해당 요소에 대한 반복자를 리턴합니다. 찾을 수없는 경우 집합의 끝까지 반복기를 반환합니다.
다음은 SET의 몇 가지 중요한 기능의 사용법을 보여주는 프로그램입니다.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< 산출:
myset의 크기 : 4
설정된 myset : 120130140160
100을 삽입 한 후 설정된 myset은 100120130140160입니다.
배열 arr 삽입 후 myset 설정은 다음과 같습니다. 100110120130140150160
130 미만 요소 제거 후 myset : 130140150160

위의 출력에서 볼 수 있듯이 간단한 삽입 함수를 사용하여 집합을 만듭니다.
다음으로 반복기 참조와 요소 값 100을 전달하여 삽입 함수의 또 다른 변형을 사용하여 집합에 요소 100을 삽입합니다. 삽입이 완료되면 집합이 재정렬되고 요소의 순서가 유지됩니다.
다음으로 insert 함수를 사용하여 {110,150,150} 배열을 삽입합니다. 배열을 삽입 한 후 세트 출력이 표시되면 150의 값이 세트에 입력 된 것을 볼 수 있습니다. 세트의 모든 요소가 고유하기 때문입니다.
세트의 크기도 표시합니다. 다음으로 find 함수를 사용하여 130보다 작은 요소를 찾은 다음 지우기 함수를 호출하여 이러한 요소를 제거합니다. 그런 다음 결과 집합을 표시합니다.
이것은 세트 컨테이너에 관한 것입니다. 다음으로 집합 컨테이너의 확장 인 다중 집합에 대해 설명합니다.
멀티 세트
다중 집합은 하나의 차이점을 제외하고 모든 측면에서 집합과 유사한 연관 컨테이너입니다. 즉, 여러 요소가 동일한 값을 가질 수 있습니다.
다중 집합에 대한 선언은 다음과 같습니다.
multiset mset;
정수 요소의 다중 집합은 다음과 같이 선언 할 수 있습니다.
다중 세트 mset;
다중 집합에서 지원하는 다양한 작업은 집합에서 지원하는 작업과 유사합니다.
이제 우리는 그것이 사용하는 작업을 보여주는 다중 집합 예제를 직접 논의 할 것입니다.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< 산출:
myset의 크기 : 4
4 개의 요소를 삽입 한 후 다중 세트 myset은 다음과 같습니다. 10 11 13
13
함수를 사용하는 C ++ 프로그램의 예
15를 삽입 한 후 다중 세트 myset은 다음과 같습니다. 10 11 13 13 15
15 개 미만의 요소를 제거한 후 myset : 15
출력 스크린 샷은 다음과 같습니다.

위의 출력에서 볼 수 있듯이 처음에는 멀티 세트에 4 개의 요소를 입력하고 그중 2 개는 동일합니다. 그러나 집합과 달리 이러한 요소는 다중 집합에 성공적으로 삽입됩니다. 그런 다음 성공적으로 삽입 된 반복기를 통해 위치를 제공하여 다른 요소 15를 삽입합니다.
다음으로 다중 집합에서 15 미만의 요소를 찾고 이러한 요소에 대해 지우기 기능을 호출합니다. 마지막으로 다중 세트를 표시합니다.
순서없는 세트
지금까지이 튜토리얼에서 집합과 다중 집합에 대해 논의했습니다.
집합이 순서가 지정된 고유 키 시퀀스 인 반면, 우리는 임의의 순서로 저장된 키 또는 요소 집합 인 '순서없는 집합'이라는 또 다른 연관 컨테이너가 있습니다. 즉, 순서가 지정되지 않은 집합의 요소는 '순서 없음'입니다.
순서가 지정되지 않은 맵과 마찬가지로 순서가 지정되지 않은 집합은 키가 해시 테이블의 인덱스로 해시되는 해시 테이블을 사용하여 구현됩니다. 해시 테이블을 사용하기 때문에 균형 잡힌 트리 구조를 사용하는 집합과 대조적으로 요소의 순서를 유지할 수 없습니다.
순서없는 집합을 구현하기위한 헤더는입니다.
#include
다음과 같이 정수 유형의 정렬되지 않은 맵을 선언합니다.
Unordered_set uset;
unorder_set에서 지원하는 작업은지도에 대한 자습서에서 논의 된 unordered_map에서 지원하는 작업과 유사합니다.
다음은 unorder_set에 대한 다양한 작업을 보여주는 예입니다.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< 산출:
uset의 크기 : 5
순서가 지정되지 않은 세트의 요소는 다음과 같습니다. 99 39 6 5 26 4 3 13 2
발견 된 키 = 13
umap bucket_count : 11
bucket_size : 2
위 출력의 스크린 샷은 아래와 같습니다.

위의 출력에서 볼 수 있듯이 먼저 순서없는 집합에 5 개의 요소를 삽입 한 다음 삽입 함수 변형의 사용법을 보여주는 또 다른 4 개의 요소를 삽입합니다. 그런 다음 순서가 지정되지 않은 세트의 내용을 표시합니다.
다음으로 find 함수를 사용하여 key = 13이 정렬되지 않은 세트에 있는지 여부를 찾습니다.
그런 다음 'bucket_count'및 'bucket_size'두 가지 함수를 더 보여줍니다. 이러한 함수는 정렬되지 않은 맵의 내부 구현과 관련이 있습니다.
이 컨테이너는 다른 STL 컨테이너와 유사한 max_size, clear, erase, empty 등과 같은 다른 반복기 함수 및 기능도 지원합니다.
결론
이것으로 STL의 SET에 대한 튜토리얼이 끝났습니다.
이 STL 튜토리얼의 일부로 다루는 주제가 STL 및 다양한 컨테이너에 대한 이해를 얻는 데 도움이되기를 바랍니다.
두 파일을 비교하는 쉘 스크립트
=> 여기에서 인기있는 C ++ 교육 시리즈를 읽어보십시오.
추천 도서
- STL의 우선 순위 대기열
- STL의 목록
- STL의지도
- STL의 스택 및 큐
- STL의 반복자
- STL의 배열
- STL의 문자열, 쌍 및 튜플
- STL의 알고리즘