C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – std :: vector实现是否使用内部数组或链表或其他?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我被告知std :: vector在内部实现上有一个C风格的数组,但这不会否定拥有动态容器的整个目的吗?

那么在向量中插入一个值是否为O(n)运算?或者它是否像链接列表中的O(1)一样?

解决方法

从C 11标准,在“序列容器”库部分(强调我的):

这并没有破坏动态大小的目的 – 向量点的一部分不仅是访问单个元素非常快,而且对向量的扫描具有非常好的内存局部性,因为所有内容都紧密地组合在一起.在实践中,具有良好的内存局部性非常重要,因为它极大地减少了缓存未命中,这对运行时有很大影响.在许多情况下,这是矢量超列表的一个主要优点,特别是那些需要比需要添加删除元素更频繁地迭代整个容器的情况.

@H_301_37@

大佬总结

以上是大佬教程为你收集整理的c – std :: vector实现是否使用内部数组或链表或其他?全部内容,希望文章能够帮你解决c – std :: vector实现是否使用内部数组或链表或其他?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。