C++에서 Set 및 UnOrderSet은 모두 쉽게 액세스하고 삽입할 수 있도록 데이터를 저장하는 데 사용되는 데이터 구조 유형입니다. 이 두 데이터 구조의 특성을 기반으로 Set과 UnOrderSet을 구분할 수 있습니다.
다음은 Set과 UnOrderSet의 중요한 차이점입니다 -
Sr. 아니요. | 키 | 설정 | UnorderSet |
---|---|---|---|
1 | 정의 | C++에서 세트는 데이터를 키 값 쌍으로 저장하고 각 값 요소가 고유해야 하는 연관 컨테이너 유형으로 정의할 수 있습니다. 이는 해당 요소의 값이 이를 식별하기 때문입니다. | 반면에 UnOrderSet은 C++ STL(표준 템플릿 라이브러리)의 일부이며 정렬된 키 값 쌍을 저장하는 Set과 같은 연관 컨테이너로 정의되지만 정렬된 순서로 데이터를 저장하는 Set과 달리 UnOrderSet은 정렬된 순서가 아닌 데이터를 저장합니다 . |
2 | 정렬 | Set 데이터의 경우 정렬된 순서로 저장됩니다. | 반면 UnOrderSet의 경우 데이터가 정렬된 순서로 저장되지 않습니다. |
3 | 중복 값 | 설정에서 중복 값은 저장할 수 없습니다. | 반면 UnOrderSet의 경우 중복 값이 삭제됩니다. |
4 | 구현 | 세트는 이진 검색 트리를 사용하여 구현됩니다. | 그러나 UnOrderedSet은 해시 테이블을 사용하여 생성됩니다. |
예시
설정
#include #include using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; set my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } set::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
출력
Item: 11 Item: 22 Item: 23 Item: 33 Item: 41 Item: 44 Item: 55 Item: 66 Item: 77 Item: 88 Item: 99
예시
UnorderSet
#include #include using namespace std; main() { int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41}; unordered_set my_set; for(int i = 0; i<15; i++) { my_set.insert(data[i]); } unordered_set::iterator it; for(it = my_set.begin(); it != my_set.end(); it++) { cout << "Item: " << *it << endl; } }
출력
Item: 11 Item: 55 Item: 22 Item: 66 Item: 33 Item: 44 Item: 77 Item: 88 Item: 99 Item: 23 Item: 41