associative-array – 从关联数组中删除任何元素

我想从关联数组中删除(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似乎足够快了.不确定解决方法是否实际上更快.

点赞