9-4 vector对象是如何增长的
.size()
:容器中有多少元素.capacity()
:不重新分配内存时,可容纳多少元素.reserve(n)
:分配至少能容纳n个元素的内存- n>capacity时会分配使得capacity >= n
- n<=capacity时什么也不做
reserve()永远不会减少容器的内存空间;shrink_to_fit()也不能保证一定会被执行
int main(){
vector<int> ivec;
//size=0;capacity依赖具体实现
cout<<" size = "<<ivec.size()
<<" capacity = "<<ivec.capacity()<<endl;
//向ivec添加24个元素
for(int ix = 0; ix !=24; ++ix)
ivec.push_back(ix);
//size为24,capacity >= 24,具体值依赖实现
cout<<" size = "<<ivec.size()
<<" capacity = "<<ivec.capacity()<<endl;
return 0;
}
可以用reverse()
预分配空间
int main(){
vector<int> ivec;
ivec.reserve(50);
for(int ix = 0; ix != 24; ++ix)
ivec.push_back(ix);
cout<<" size = "<<ivec.size()
<<" capacity = "<<ivec.capacity()<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!