c++ - 多 vector 访问与本地对象

标签 c++ cocos2d-x stdvector

知道类 CCPoint 只有两个 float 成员变量,使用第一个示例比使用第二个示例有什么性能优势吗?

std::vector<p2t::Point*> polyline;
for (int i = 0; i < points.size(); ++i) {
    CCPoint p = points.at(i);
    polyline.push_back(new p2t::Point(p.x, p.y));
}

换句话说,在这种情况下,使用本地实例是否是一种好的做法?

std::vector<p2t::Point*> polyline;
for (int i = 0; i < points.size(); ++i)
    polyline.push_back(new p2t::Point(points.at(i).x, points.at(i).y));

谢谢!

最佳答案

在您确定这部分代码确实会减慢您的应用程序之前,切勿进行优化。带有局部变量的示例更易于理解,因此请始终在第一个实现中使用它。无论如何,编译器可能会在 Release 模式下为两者生成相同的代码。

关于c++ - 多 vector 访问与本地对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533064/

相关文章:

c++ - OpenGL 绘制多个对象

c++ - 通过 LoadLibrary 从纯 C++ 程序加载托管 C++ DLL

c++ - 如何在一对 vector 中输入单个值?

C++ 成员初始化和构造函数

c++ - 我们在哪里以及为什么使用 "pointers that point to constants"、 "constant pointers"和 "constant pointers that point to constants"?

android - fatal error : Box2D. h:没有那个文件或目录

c++ - 如何获取节点的宽度?

c++ - ld : symbol(s) not found for architecture armv7 - Using a library?

c++ - 如何让 `std::vector<int32_t>` 从 `std::vector<uint32_t>&&` 获取内存?

c++ - 在 C++ 中通过多个函数嵌套按值返回 vector