【发布时间】:2016-10-28 23:00:32
【问题描述】:
创建类对象和类型向量是否昂贵? 什么更贵?对象还是向量?为什么反对票?
谢谢
class player player1;
class player player2;
class player player3;
std::vector<player> playervec1;
std::vector<player> playervec2;
std::vector<player> playervec3;
【问题讨论】:
-
向量是包含其他对象的对象。
-
因为这是题外话:“太宽泛了。可能的答案太多,或者好的答案对于这种格式来说太长了。请添加详细信息以缩小答案集或隔离几段就可以回答的问题。”如果
player是一个计算素数的类,那么将其实例化三次会比三个向量更昂贵。如果player是一个完全空的类,那么初始化其中三个会比初始化三个向量要快,因为后者需要进行一些初始化。 -
这个问题感觉像是对“什么是向量以及它们如何工作?”的广泛尝试
-
两者都不太可能特别昂贵(向量当然不是 - 你甚至没有在其中存储任何东西,所以它们只是几个可能设置为 0 的指针,尽管可能包含一些额外的“调试”构建中的数据位)。无论如何,只需编写执行您的程序需要执行的代码,然后担心内存使用和性能如果证明有必要。跨度>
标签: c++ performance object vector