测试关联数组是否包含D中的键

测试关联数组是否包含D中的键,d,associative-array,D,Associative Array,这个问题不言自明;在实际插入关联数组之前,我希望能够检查关联数组是否包含要(可能)插入的值。有没有一种简单的方法可以在不搜索dict.keys的情况下执行此操作?可能类似于if(dict.contains(val))…?要测试键是否在关联数组中,请使用in操作符: string[int] aa; string* ps = 100 in aa; if(ps) { // 100 is a key in aa, ps is a pointer to the corresponding va

这个问题不言自明;在实际插入关联数组之前,我希望能够检查关联数组是否包含要(可能)插入的值。有没有一种简单的方法可以在不搜索dict.keys的情况下执行此操作?可能类似于
if(dict.contains(val))…

要测试键是否在关联数组中,请使用
in
操作符:

string[int] aa;

string* ps = 100 in aa;

if(ps)
{
    // 100 is a key in aa, ps is a pointer to the corresponding value
}
else
{
    // 100 is not a key in aa
}

要测试是否存在,您必须搜索
aa.values

值得注意的是,当且仅当指针
为null时,指针才会在条件中计算为false
我认为编写该代码的常用方法是
如果(自动v=key in aa){fn(*v);}否则{…}
不起作用,因为
null
可能是
dict
中的有效值;您可以调用
dict[key]=null
,然后
输入dict
将返回
true
@beeryboy它取决于您是否可以使用它
if (!dict.get(key, null))
     dict[key] = val;