gpt4 book ai didi

c++ - 什么是 boost::optional 效率?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:11:13 25 4
gpt4 key购买 nike

我有以下内容:

class Obj;
typedef std::map<string, string> StrMap;
std::map<std::string, std::pair<Obj, StrMap> > complexMap;

问题是,对于 complexMap 中的某些条目,StrMap 将是空的,我根本不会使用它,因此为了提高效率,我正在考虑使用 boost::optional。我的问题是boost::optional的效率如何,我担心付出代价最终会一无所获。

最佳答案

optional 视为可以容纳 0 或 1 值的容器。您的 map 已经是一个可以容纳 0 到 N 个元素的容器。因此,可选映射是一个容器中的容器,可以容纳 0 到 N 个元素。真的,这里没有任何好处。

空 map 的开销非常小。 map 实际上是在内部从 map 节点构建的,而空 map 只是没有任何节点。 (不能,因为每个节点都有一个值,空映射无法创建默认值)

关于c++ - 什么是 boost::optional 效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17291813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com