der*_*dji 3 c++ arrays performance vector
当我试图用c ++学习数组和向量时,我遇到了这个.帖子中提到的"分页效应"是什么?另外,只是为了检查我自己的理解,我认为vector使用更多的时间是因为动态内存分配.我对吗?
另外一个问题:但是vector<int> arr( 10000 )
已经没有足够的内存来分配10000个int吗?或者这样说,arr
如果我所做的只是迭代每个元素并初始化它们,它仍然会增长吗?
如果使用push_back(),Vector会使用动态分配,但您可以强制它使用reserve()预分配内存.
Checked构建(在调试库中很常见)也检查向量操作的边界,这可能会在调试模式下降低它们的速度.发布版本应该不比原始版本慢.
分页意味着在物理内存已满时将内存移出磁盘.如果你认为记忆被分页,你必须小心时机.一种常见的技术是多次运行任务并拒绝最长时间.
编辑:你应该(几乎)从不使用原始的'C'类型而不是STL来提高效率.编写STL的人都非常聪明并且非常关心性能.如果使用得当,它应该永远不会比'C'更差,而且往往更好.使用STL算法而不是你自己的han滚动循环也是如此.
归档时间: |
|
查看次数: |
2159 次 |
最近记录: |