社区
C++ 语言
帖子详情
vector插入元素的效率问题
jerrykid
2007-04-26 11:25:47
遇到这样一个问题,如果vector中预先申请了100个元素空间,现在我要插入第101个元素,一般的实现是申请一个可以存放200个元素新的存储空间,然后复制已经有的元素,再插入新的元素,有没有更好的提高效率的实现办法,请大家指教!
...全文
896
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成员函数
m1n1终极指南:解锁Apple Silicon硬件的开源引导与调试平台
m1n1是一个专为Apple Silicon芯片设计的开源引导加载程序,它不仅是一个简单的启动工具,更是一个功能强大的硬件实验平台。作为Asahi Linux项目的核心组件,m1n1为开发者和研究者提供了前所未有的Apple Silicon硬件访问能力,打破了传统封闭系统的限制。 ## 🔧 解决什么痛点:为什么需要m1n1? | 传统限制 | m1n1解决方案 | |---------|--
m1n1:揭秘Apple Silicon的底层引导与硬件实验平台
在苹果M系列芯片重塑计算架构的今天,m1n1作为一个专为Apple Silicon设计的引导加载程序与硬件实验平台,为开发者提供了前所未有的底层访问能力。这个开源项目不仅能够启动Linux系统,更是一个强大的硬件调试工具集,让开发者能够深入探索苹果芯片的奥秘。 ## 项目背景与技术价值 Apple Silicon的出现彻底改变了个人计算的性能格局,但其封闭的硬件生态系统让开发者难以进行底层调试
深入解析m1n1引导加载程序:Apple Silicon硬件调试与Linux启动技术实践
**m1n1** 是一个专为Apple Silicon(苹果M系列芯片)设计的开源引导加载程序和硬件实验平台,由Asahi Linux团队开发。该项目为M1/M2芯片设备提供底层硬件访问能力,支持Linux系统启动、硬件调试和固件逆向工程,是Apple Silicon生态系统中重要的技术基础设施。 ## 项目技术定位:Apple Silicon硬件抽象层 m1n1的核心定位是作为Apple S
揭秘Apple Silicon引导神器:m1n1如何为M1芯片开启Linux新世界
你是否曾想过在苹果M1芯片上运行Linux系统?🎯 今天,就让我为你揭开一个开源项目的面纱——m1n1,这个专为Apple Silicon设计的引导程序和实验平台,正在改变开发者在苹果硬件上的工作方式。 ## 为什么选择m1n1:不仅仅是引导程序 m1n1不仅仅是一个简单的引导加载程序,它更是一个功能强大的**硬件实验平台**。想象一下,你手中有一台搭载M1芯片的Mac,想要深入了解其内部工
如何在Apple Silicon上5分钟搭建MLX-Audio语音AI环境:终极快速入门指南
想要在Apple Silicon上快速搭建高效的语音AI环境吗?MLX-Audio是一个基于Apple MLX框架构建的文本转语音和语音转文本库,专门为Apple Silicon优化,提供闪电般的语音合成功能。无论你是开发者、内容创作者还是AI爱好者,这个指南将帮助你在5分钟内快速搭建语音AI环境。 ## 入门三部曲:从零开始搭建MLX-Audio ### 第一步:一键安装MLX-Audio
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章