4

我想从关联数组中删除一个(y)元素并对其进行处理。目前我正在使用 aRedBlackTree.removeAny(),但我不需要数据按任何顺序排列。我可以在 AA 上使用.byKey(),但这总是会产生一个包含所有键的数组。我一次只需要一个,并且可能会在处理所有其他元素时更改 AA。有没有其他聪明的方法可以在不(内部)遍历整个数据结构的情况下获得一个密钥?

4

1 回答 1

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似乎已经足够快了。不确定解决方法是否实际上更快。

于 2013-04-10T20:38:04.893 回答