社区
C++ 语言
帖子详情
vector插入元素的效率问题
jerrykid
2007-04-26 11:25:47
遇到这样一个问题,如果vector中预先申请了100个元素空间,现在我要插入第101个元素,一般的实现是申请一个可以存放200个元素新的存储空间,然后复制已经有的元素,再插入新的元素,有没有更好的提高效率的实现办法,请大家指教!
...全文
894
8
打赏
收藏
vector插入元素的效率问题
遇到这样一个问题,如果vector中预先申请了100个元素空间,现在我要插入第101个元素,一般的实现是申请一个可以存放200个元素新的存储空间,然后复制已经有的元素,再插入新的元素,有没有更好的提高效率的实现办法,请大家指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longshanks
2007-04-26
打赏
举报
回复
理论上,可以利用cpu的分页机制。分页机制由硬件操作,只占用极少的时钟周期。而且,更重要的,它不需要将内存中的数据拷贝来拷贝去。
但是,凡事都有但是,分页机制是硬件特性,只特定于某个平台,所以没有可移植性。并不是所有的系统都支持分页内存,即便是支持,各系统的分页结构也不同。因此,一般在C++中不用这种机制。C++是坚决反对与平台绑定的。
但是如果你不必考虑移植性,便可以利用这个机制创建自己的Allocator,来提升性能。
在ms的OleDB Template中有一个CArrayRowset类,这个类就是利用Win32上的虚内存系统提高效率的。
chenyu2202863
2007-04-26
打赏
举报
回复
capacity,reserve
yoyo_alex_lw
2007-04-26
打赏
举报
回复
没有,鱼与熊掌不能兼得。不然,就不会有list等数据结构了
taodm
2007-04-26
打赏
举报
回复
这已经是最高效的方法了。
jerrykid
2007-04-26
打赏
举报
回复
我是举个例子说明一下,其实可以这样说,如果往vector中插入一个元素的时候发现vector预先申请的空间已经用完,除了系统默认的方法有没有其它高效的插入方法!
rainstormed
2007-04-26
打赏
举报
回复
可以不预申请空间,系统会自动增长
taodm
2007-04-26
打赏
举报
回复
那就当初预申请好200个嘛。
珍惜生命远离CPP
2007-04-26
打赏
举报
回复
reserve成员函数
c++
vector
insert用法
本文详细解析了C++ STL中
vector
容器的
插入
操作,包括单
元素
插入
、范围
插入
、移动
插入
及初始化列表
插入
等五种方式。通过实例演示了如何在指定位置前
插入
新
元素
,并介绍了
插入
操作可能引起的
效率
问题
。
vector
insert用法_C++
vector
用法详解
本文详细介绍了C++中
vector
的基本概念和使用,包括
vector
的动态扩展原理、优缺点以及与其他容器的性能对比。重点讲解了
vector
的insert方法,对比了C++11引入的新
插入
函数,并探讨了向
vector
中间
插入
元素
的
效率
问题
。此外,还展示了
vector
的容量管理、
元素
访问、修改及内存分配等操作,并提到了
vector
在二维数组场景的应用。
对
vector
内部结构的解析(一)
本文探讨了C++中
vector
数据结构的内部工作原理,包括其动态增长的机制。通过示例程序展示了
vector
在添加
元素
时如何翻倍增加容量,并解释了在
vector
中间
插入
元素
可能导致的
效率
问题
。
Vector
容器,
vector
对象的构造,
vector
的赋值
本文详细介绍了C++标准库中的
Vector
容器,包括其概念、构造方法、赋值操作、大小管理、
元素
的添加与移除以及数据存取。重点讲解了
Vector
的构造,如默认构造、带参构造,并通过示例展示了如何使用assign方法赋值。此外,还讨论了在
Vector
尾部添加
元素
的高效性以及中部和头部
插入
的
效率
问题
。
学习笔记——
vector
容器
文章详细介绍了C++中的
vector
容器,包括其作为动态数组的特性,如通过
vector
[idx]或
vector
.at(idx)访问
元素
,以及不同位置
插入
和删除
元素
的时间复杂度。内容涵盖
vector
的构造、赋值、大小调整、索引访问和
插入
删除操作。特别强调了在中间
插入
和删除
元素
的
效率
问题
,以及使用迭代器时需注意的失效情况,如insert()和erase()操作后应更新迭代器的值以避免错误。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章