使用swap 回收多余空间
| #include<vector> |
| #include<iostream> |
| using namespace std; |
| int main(){ |
| vector<int> v; |
| for (int i = 0; i < 100000; ++i) { |
| v.push_back(i); |
| } |
| cout<<v.size()<<endl; |
| cout<<v.capacity()<<endl; |
| v.resize(3); |
| cout<<v.size()<<endl; |
| cout<<v.capacity()<<endl; |
| |
| vector<int>(v).swap(v); |
| |
| cout<<v.size()<<endl; |
| cout<<v.capacity()<<endl; |
| return 0; |
| } |
使用reserve 预留空间,减少内存开辟消耗
| int main(){ |
| vector<int> v; |
| int * p = nullptr; |
| v.reserve(100000); |
| |
| |
| |
| |
| |
| size_t count= 0; |
| for(int i=0;i<100000;i++){ |
| v.push_back(i); |
| if(p!=&v[0]){ |
| p=&v[0]; |
| count++; |
| } |
| } |
| cout<<"开辟内存次数"<<( count)<<endl; |
| return 0; |
| } |
随机数生成
| #include<random> |
| int gen_random(int min, int max) |
| { |
| std::random_device rd; |
| std::mt19937 gen(rd()); |
| std::uniform_int_distribution<> dis(min, max); |
| return dis(gen); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】