c++ - C++ 中的 vector 与数组

标签 c++ visual-studio runtime

<分区>

我正在做一个项目,在这个项目中我使用 vector ,因为数组的大小最初是未知的。使用数组而不是 vector 会减少代码的运行时间吗?如果是,那么我如何初始化/声明未知大小的数组,即数组的大小是可变的(基于输入)? “或”仅使用 vector 更好吗?

注意:- 我想知道哪个能更好地减少程序的执行时间。

最佳答案

编程和生活一样,天下没有免费的饭菜……时刻牢记这一点。如果你想要好的和方便的功能,你必须付出代价。

std::vector 会给您的代码增加一些您看不到的复杂性。将项目添加到您的 std::vector 可以做更多,然后只需写入一个值。它可能会分配新内存并将旧值复制到其中。还有一些你不会真正看到的东西。

切换到 std::array 不会给您带来您想要的提升。它比 std::vector 简单一些。当您正在寻找普通 c 数组的补充时,这是获得的方式。但它仍然会增加复杂性。

所以我的建议是,你会在好书中找到类似的东西。尝试基于算法而不是实现来优化您的代码。可能有缺陷的算法有更多的潜力,或者曾经有更好的算法。该实现不会为您提供地面制动助力。

关于c++ - C++ 中的 vector 与数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034039/

相关文章:

bash - 设置运行时路径,从 vim 中的表达式添加目录?

c++ - 如何使用 C/C++ 系统调用获取 Linux 中进程的当前堆内存大小?

c++ - BGL (boost graph library) 中的 Lengauer Tarjan 算法

c++ - movl多数据指令与汇编优化比较

c# - 使用动态 Linq 过滤集合

c++ - 如何更改 *.db 的默认位置?

Python:在运行时动态创建函数

c++ - 通过在函数调用中构造的引用传递对象

c++ - 使用 VS 调试 C++。追踪变量变化

algorithm - 您如何将代码表示为用于运行时分析的数学算法?