我希望提高以下代码的性能。在代码执行时,哪些方面可能会影响代码的性能?
此外,考虑到可以添加到容器中的对象数量没有限制,可以对“Object”或“addToContainer”进行哪些改进来提高程序的性能?
我想知道C++中的std::push_back是否会以任何方式影响代码的性能?特别是在没有添加到列表的限制的情况下。
struct Object{
string name;
string description;
};
vector<Object> container;
void addToContainer(Object object) {
container.push_back(object);
}
int main() {
addToContainer({ "Fira", "+5 ATTACK" });
addToContainer({ "Potion", "+10 HP" });
}
发布于 2019-05-30 09:00:22
不幸的是,在没有任何其他要求的情况下,这是最有效的:
void addToContainer(Object) { }
来回答你剩下的问题。通常,push_back只会添加到分配的向量O(1)的末尾,但有时需要增长向量,该向量可以摊销,但为O(N)。
此外,不使用string
可能更有效,而是保留char *
,尽管内存管理可能很棘手,除非它始终是添加的文字
https://stackoverflow.com/questions/56370244
复制相似问题