gpt4 book ai didi

c++ - 构造类的性能问题,C++

转载 作者:行者123 更新时间:2023-11-30 04:32:23 25 4
gpt4 key购买 nike

我知道这是一个简单的问题,但我不知道如何正确地做我想做的事情。我正在使用 SFML,但您不需要了解它是如何工作的。这是我生成图 block 并将它们分配给图 block 的二维 vector 的简单代码片段: http://www.pastie.org/2665489

TilePlane对象构建过程中,每次操作(tilesMap[i]).push_back(tile)耗时太长,感觉是在复制数据而不是使用更优雅的方法。那么在这种情况下,有什么好的方法可以解决这个问题呢?

最佳答案

您的代码中存在很多性能问题。如果瓶颈确实来自 push_back,您应该采纳 Masoud 的建议并将指针推送到数组而不是值。

另一个建议是声明函数和构造函数以使用引用 - 例如:

Tile::Tile(const Tileset& tileset, int tileId, int posX, int posY)

代替

Tile::Tile(Tileset tileset, int tileId, int posX, int posY)

按值传递参数将强制创建一个拷贝,这可能会很昂贵。通过 const 引用传递保证对象不会被复制或修改。

关于c++ - 构造类的性能问题,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703597/

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