繁体   English   中英

c ++ std :: vector performance [需要参考]

[英]c++ std::vector performance [reference required]

我正在编写一些数据结构的并行实现。 我想知道是否有人知道纯指针和std :: vector之间的性能差异。 如果您知道有关它的可靠文档,请写下URL /书名/等等。 任何提示都是受欢迎的!

不同之处在于使用实现相对。

你可以使用unchecked operator []和正确调整大小,使std :: vector与普通指针一样快。 实际情况是,向​​量是指针的编译时抽象,而不是运行时抽象,除非您选择使用额外的。 更重要的是大大增加的安全向量提供 - 调试迭代器,自动和安全的资源管理等。没有理由使用原始指针。

编辑:我的参考是你甚至在考虑失去向量的安全性之前进行的性能分析。

根据类似问题的答案 ,访问动态分配数组中的元素与std::vector将大致相同。 在这个问题和这个问题中有一些很好的分析。

如果你的意思是将std::vector与一些手写的动态数组进行比较,这里有一些参考点:

  • 插入时的调整大小因素很重要。 该因子未由标准规定,但通常在1.5或2之间,并且必须保证在插入操作中分摊的常数时间。
  • 分配器:很多性能取决于所使用的分配机制,同样适用于您的指针。
  • 边界检查可以在std::vector如果你调用vector::at ,原始指针不会发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM