如何有效地从C#中提取元素;s排序词典

本文关键字:排序 元素 提取 有效地 | 更新日期: 2023-09-27 18:23:43

从复杂度为O(lgn)而不是O(2lgn)的C#的SortedDictionary中获取与键关联的Value的标准C#实践是什么?我之所以这么问,是因为似乎每次你想提取一个值时,都需要首先调用ContainsKey来检查该键是否存在,这会给整体复杂性增加另一个lgn。在C++中,我可以调用.find(),并根据.end()检查它返回的指针,如果指针不等于.end(。那么,在C#中,除了使用O(lgn)复杂度之外,我还能做其他事情吗?谢谢

如何有效地从C#中提取元素;s排序词典

从C#的SortedDictionary中获得与复杂度为O(lgn)而不是O(2lgn)的键相关联的Value的标准C#实践是什么?

O(log(n))等于O(2 * log(n)),因此执行两次O(log(n))。

也就是说,您可以使用TryGetValue来获得一个值,如果一个值存在,则使用单程。

要进行单个查找,可以使用TryGetValue

object value;
if(dic.TryGetValue(key, out value))
{
}