集合

集合是一种无序且不重复的数据集合。本小节介绍集合的创建方式与使用示例,以及集合的常用接口。

创建集合

使用<Util.h>中提供的工具方法来创建,方法声明如下:

static Set* createSet(DATA_TYPE keyType, INDEX capacity);

参数:

  • keyType:表示集合中存储元素的类型,如 DT_INT,DT_DATE 等。
  • capacity:表示集合初始预留存储 capacity 个元素的空间。

使用示例如下:

SetSP set = Util::createSet(DT_INT, 100);

常用接口

集合的常用接口如下:

bool append(const ConstantSP& value);    //添加元素value到集合中
bool remove(const ConstantSP& value);                                         //从集合中删除value
void contain(const ConstantSP& target, const ConstantSP& resultSP) const;     //判断集合中是否存在元素target
INDEX size() const;                                                           //获取集合中元素的数量
void clear();                //清空集合

用法如下:

set->append(new Int(3));      //(3)
set->append(new Int(1));             //(3, 1)
set->append(new Int(2));                      //(3, 1, 2)
set->append(new Int(2));                      //(3, 1, 2)
ConstantSP result = new Bool;
set->contain(new Int(3), result);             //result : true
set->contain(new Int(4), result);             //result : false
set->remove(new Int(1));                      //(2, 3)
set->remove(new Int(4));                      //(2, 3)
std::cout << set->size();                     //2
set->clear();