我正在编写一些数据结构的并行实现。我想知道是否有人知道纯指针和std :: vector之间的性能差异。如果您知道有关它的可靠文档,请写下URL /书名/等等。欢迎任何提示!
答案 0 :(得分:5)
区别在于用法和实施相对。
答案 1 :(得分:3)
你可以使用unchecked operator []和正确调整大小,使std :: vector与普通指针一样快。实际情况是,向量是指针的编译时抽象,而不是运行时抽象,除非您选择使用额外的。更重要的是大大增加的安全向量提供 - 调试迭代器,自动和安全的资源管理等。没有理由使用原始指针。
编辑:我的参考是你甚至在考虑失去向量的安全性之前就已经完成了分析。
答案 2 :(得分:0)
根据this answer in a similar question,访问动态分配数组中的元素与std::vector
的元素大致相同。这个问题和this one as well中有一些很好的分析。
答案 3 :(得分:0)
如果你想将std::vector
与一些手写的动态数组进行比较,这里有一些参考点:
std::vector
,vector::at
可能会发生边界检查。