在C ++中,Set和UnOrderSet都是数据结构的类型,用于存储数据以便于访问和插入。根据这两种数据结构的特征,我们可以区分Set和UnOrderSet
以下是Set和UnOrderSet之间的重要区别-
| 序号 | 键 | 组 | UnOrderSet | 
|---|---|---|---|
| 1 | 定义 | 可以将C ++中的Set定义为一种关联容器,该类型将数据存储在键值对中,并且每个value元素都必须是唯一的,因为该元素的值可以标识该值。 | 另一方面,UnOrderSet是C ++ STL(标准模板库)的一部分,并被定义为诸如Set的关联容器,该容器存储排序的键值对,但与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