2013-02-14 40 views
6

这个问题很明显,我希望能够在我实际插入它之前检查一个关联数组是否包含一个值(即将)(可能)插入的值。有没有简单的方法来做到这一点,而不需要搜索dict.keys?也许像if (dict.contains(val)) ...测试关联数组是否包含D中的密钥

回答

7

测试是否关键是一个关联数组,使用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进行搜索。

+0

这是值得注意的一个指针将评估为假的条件,当且仅当指针'是null' – 2013-02-15 02:13:15

+3

我想编写代码通常的方式是'如果(汽车V =在AA关键){fn(* v); } else {...}' – BCS 2013-02-15 02:34:51

+0

谢谢yoooou! c: – 2017-03-25 18:13:58

1
if (!dict.get(key, null)) 
    dict[key] = val; 
+0

不起作用,因为'null'可能是'dict'中的有效值;你可以调用'dict [key] = null;',那么'dict'键将返回'true'。 – beerboy 2014-05-06 03:43:44

+0

@beeryboy这取决于你是否可以使用它的情况 – fwend 2014-05-06 17:07:52