C ++中Set和MultiSet之间的区别

在C ++中,Set和MultiSet都是数据结构的类型,用于存储数据以便于访问和插入。根据这两种数据结构的特征,我们可以区分Set和MultiSet。

以下是Set和MultiSet之间的重要区别-

序号多集
1定义可以将C ++中的Set定义为一种关联容器,它将数据存储在键值对中,并且每个value元素都必须是唯一的,因为该元素的值可以标识该值。另一方面,MultiSet是C ++ STL(标准模板库)的一部分,被定义为诸如Set之类的关联容器,该容器存储排序的键值对,但是与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