c++ resize缩小vector
时间: 2023-08-28 14:23:18 浏览: 148
当使用resize函数来缩小vector的大小时,vector会根据指定的大小进行调整。如果新的大小小于当前的大小,那么超出新大小的元素将被删除。需要注意的是,resize函数只会改变vector的大小,并不会影响它的容量。因此,如果你希望同时改变容量和大小,可以考虑使用shrink_to_fit函数来收缩容量以适应新的大小。例如,假设我们有一个大小为10的vector,我们可以使用resize函数将其缩小为5: vector<int> v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; v.resize(5); cout << "v size is " << v.size() << endl; // 5
这将使vector的大小变为5,只包含前5个元素。请注意,后面的元素并没有被真正删除,而是被标记为不可访问。如果你希望完全删除这些元素并释放内存,可以使用shrink_to_fit函数: v.shrink_to_fit(); cout << "v capacity is " << v.capacity() << endl; // 5
现在,vector的容量也已经调整为与其大小相匹配。总之,resize函数提供了一种方便的方法来调整vector的大小,而shrink_to_fit函数则可以帮助我们进一步优化内存使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [【C++】vector容器缩小capacity](https://blog.csdn.net/qq_45306739/article/details/131072968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [C++重构vector](https://download.csdn.net/download/weixin_68756152/87961116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文