c++ - 动态数组与 std::vector

标签 c++ performance stdvector dynamic-arrays

我编写了一个小程序来使用朴素除法算法计算素数。为了提高性能,我认为它应该只检查基于先前检测到的小于等于数字平方根的素数的整除性。 为此,我需要跟踪素数。我已经使用动态数组实现了它。 (例如,使用 newdelete)。我应该改用 std::vector 吗?哪个在性能方面更好? (维护不是问题。) 任何帮助,将不胜感激。 😊

最佳答案

理想的答案:

我们怎么知道?这取决于您的编译器、您的操作系统、您的体系结构、您的标准库实现、行星的排列...

对其进行基准测试。可能与 this . (没用过,不过用起来好像很简单)

实际答案:

使用std::vector。您所做的每一次 newdelete 都是内存泄漏、两次 delete 或忘记做某事的机会。 std::vector 基本上是在幕后完成的。通过最大化优化标志,您更有可能获得相当大的性能提升(如果您使用的是 gcc,请尝试 -Ofast-march=native )。

还有:

Maintenance is not an issue.

怀疑。相信我这一点。如果不出意外,至少要注释您的代码(但那是另一种蠕虫病毒)。

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

相关文章:

c++ - 如果用户输入带小数的数字,如何显示 float ;如果用户使用函数重载输入整数,如何显示整数

java - JDBC MySQL 连接到故障转移节点非常慢

c++ - 我可以确定 vector 包含对象而不是指向对象的指针吗?

c++ - 使用 std::filebuf 时检测底层文件的完整性丢失?

c++ - 如何在 C++ 中使用 switch case 比较字符串

python - 加快简单距离计算速度

ios - 优化 iOS 应用中关键代码的性能

c++ - std::vector 是否将其值类型的赋值运算符用于 push_back 元素?

c++ - 如何将 AERT_Allocate 与 std :vector 一起使用

c++ - 了解 std::move 和 unique_ptr