使用 at() 访问 std::map 元素是否比运算符 [] 慢?



当我想从std::map中获取某些元素时,据我所知,at()会进行边界检查。这是否意味着它比[]慢?

std::map::atstd::map::operator[]都检查密钥是否存在。前者在找不到时引发异常,后创建默认值。

它们的复杂性是必须log(n)(查找(的。 性能本身并不强制要求相同,但在实践中应该是相似的。

因此,从他们的行为中选择要使用的一个(查找后(。类似的替代方案可能是map::find的,或者在某些情况下map::insert/insert_or_assign/emplace

相关内容

  • 没有找到相关文章

最新更新