Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 Set과 MultiSet의 차이점

<시간/>

C++에서 Set 및 MultiSet은 모두 쉽게 액세스하고 삽입할 수 있도록 데이터를 저장하는 데 사용되는 데이터 구조 유형입니다. 이 두 데이터 구조의 특성을 기반으로 Set과 MultiSet을 구분할 수 있습니다.

다음은 Set과 MultiSet의 중요한 차이점입니다 -

Sr. 아니요. 설정 멀티세트
1 정의 C++에서 세트는 데이터를 키 값 쌍으로 저장하고 각 값 요소가 고유해야 하는 연관 컨테이너 유형으로 정의할 수 있습니다. 이는 해당 요소의 값이 이를 식별하기 때문입니다. 반면에 MultiSet은 C++ STL(Standard Template Library)의 일부이며 정렬된 키 값 쌍을 저장하는 Set과 같은 연관 컨테이너로 정의되지만 고유 키만 저장하는 Set과 달리 MultiSet은 중복 키를 가질 수 있습니다.
2 정렬 Set의 경우 데이터가 정렬된 순서로 저장됩니다. MultiSet의 경우에도 데이터가 정렬된 순서로 저장됩니다.
3 중복 값 설정에서 중복 값은 저장할 수 없습니다. 반면에 MultiSet의 경우 중복 값을 저장할 수 있습니다.
4 조작 Set의 경우 한 번 삽입되면 값을 변경할 수 없지만 삭제하거나 다시 삽입할 수 있습니다. 그러나 MultiSet의 경우에도 한번 삽입되면 값을 변경할 수 없습니다.

예시

설정

#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

예시

멀티세트

#include
#include
using namespace std;
main() {
   int data[15] = {11, 55, 22, 66, 33, 22, 11, 44, 77, 88, 66, 99, 66, 23, 41};
   multiset my_set;
   for(int i = 0; i<15; i++) { my_set.insert(data[i]);
   }
   multiset::iterator it;
   for(it = my_set.begin(); it != my_set.end(); it++) {
      cout << "Item: " << *it << endl;
   }
}

출력

Item: 11
Item: 11
Item: 22
Item: 22
Item: 23
Item: 33
Item: 41
Item: 44
Item: 55
Item: 66
Item: 66
Item: 66
Item: 77
Item: 88
Item: 99