我想从关联数组中删除(y)元素并进行处理.
目前我正在使用RedBlackTree和.removeAny(),但我不需要数据以任何顺序.我可以在AA上使用.byKey(),但这总是产生一个包含所有键的数组.我一次只需要一个,并且在处理所有其他元素时可能会改变AA.有没有其他智能方法可以在没有(内部)遍历整个数据结构的情况下获得一个密钥? 最佳答案 有一种解决方法,与使用.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似乎足够快了.不确定解决方法是否实际上更快.