字典

字典是一种无序的数据结构,用于存储键(Key)和值(Value)之间的映射关系,其中键不能重复。本小节介绍字典的创建方式与使用示例,以及字典的常用接口。

创建字典

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

static Dictionary* createDictionary(DATA_TYPE keyType, DATA_TYPE valueType);

参数:

  • keyType:字典中 key 的类型,如 DT_INT,DT_DATE 等。
  • valueType:字典中 value 的类型,如 DT_INT,DT_DATE 等。

使用示例:

DictionarySP dic = Util::createDictionary(DT_INT, DT_STRING);

常用接口

字典的常用接口如下:

bool set(const ConstantSP& key, const ConstantSP& value)       //添加键值对(key, value)添加到字典中,如果key已经存在于字典中,则更新它的value
bool remove(const ConstantSP& key);                    //从字典中删除key
void contain(const ConstantSP& target, const ConstantSP& resultSP) const;     //判断字典中是否存在target
ConstantSP getMember(const ConstantSP& key) const;                     //从字典中获取key所对应的value
INDEX size() const;               //获取字典中元素的数量
void clear();                        //清空字典

示例代码:

dic->set(new Int(1), new String("123"));       //1 -> "123"
dic->set(new Int(2), new String("456"));       //1 -> "123", 2 -> "456"
dic->remove(new Int(2));                       //1 -> "123"
dic->set(new Int(1), new String("777"));        //1 -> "777"

ConstantSP result = new Bool;
dic->contain(new Int(3), result);              //result : false
dic->contain(new Int(1), result);              //result : true
ConstantSP value = dic->getMember(new Int(1));
std::cout << dic->size() << std::endl;         //1
dic->clear();
std::cout << dic->size() << std::endl;         //0