复制地图要多少钱?

问题描述

| 我的
EntityRepresentation
班上有
map<EntityState,boost::weak_ptr<Animation>>
。我有点想为表示形式创建一个Builder类,但是我必须考虑复制地图的成本。
EntityState
复制成本低,因为它只是静态函数的集合;
boost::weak_ptr
也很便宜。整个地图怎么样?     

解决方法

        这取决于它拥有的物品数量。我认为自己的成员不会造成太大问题。     ,        不要过早优化。在许多情况下,构建器类的运行时性能不会成为瓶颈。 通常,复制地图的复杂度为
O(n)
。从评论看,
n
很小。如果您确定确实需要优化,那么在这种情况下,使用两个向量在访问项目和复制方面都比较便宜。     ,        令我惊讶的是,没有人提到复制消除。 这个概念允许编译器在可能的情况下取消副本。因此,您的构建器实现很可能会简单地将您的
EntityRepresentation
正确地构建到\“ return \”插槽中并避免所有复制。到那时,您的烦恼就没有了。     ,        在探查器说您必须这样做之前,我不会担心,但通常来说,映射中每个元素只有一个分配,这可能会产生重大影响。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...