字典
字典是一种无序的数据结构,用于存储键(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