我想从关联数组中删除(y)元素并对其进行处理。
目前我正在使用RedBlackTree
和.removeAny()
,但我不需要数据按任何顺序排列。我可能在AA上使用.byKey()
,但这总是产生一个包含所有键的数组。我一次只需要一个,并且在处理所有其他元素时可能会改变AA。有没有其他智能方法可以在没有(内部)遍历整个数据结构的情况下获得一个密钥?
答案 0 :(得分:2)
有一种解决方法,与使用.byKeys()
:
auto anyKey(K, V)(inout ref V[K] aa)
{
foreach (K k, ref inout(V) v; aa)
return k;
assert(0, "Associative array hasn't any keys.");
}
根据我的需要,.byKeys().front
似乎足够快。不确定解决方法是否实际上更快。