gpt4 book ai didi

c++ - STL 与 struct 的速度问题

转载 作者:行者123 更新时间:2023-11-30 20:57:09 25 4
gpt4 key购买 nike

最近我发现 C 和 C++ 之间存在一些速度差异,有时无法预测它们在某种情况下哪个更快。

我知道 STL 自推出以来已经简化了很多,但是它是否以速度/内存成本简化了东西?

例如,有多种方法可以使用带指针的结构来定义堆栈/队列/二叉树/图等。不过,这些实现有点复杂。完成这一切的另一种方法是简单地使用 STL 中的 vector ,该 vector 具有使用模板随意增加和减小大小的能力。还有许多针对 map 、队列等实现的模板。

我的问题是,您认为哪种实现在时间和内存复杂性方面更有效,为什么?

最佳答案

C++ 标准库经过多年的开发、性能调整和调试,随着编译器优化的改进,您可以从标准容器中获得真正良好的开箱即用性能。最大的性能瓶颈可能是从堆获取内存,在某些情况下可以减少内存,例如 vector 的reserve

如果您正在编写 C++,只需使用您可用的所有容器和算法,具体取决于您的软件需求。然后,如果您遇到性能问题,您可以分析您的代码(很可能瓶颈仍然不是标准库)。

关于c++ - STL 与 struct 的速度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14058341/

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