std::vector---swap
来源:互联网 发布:淘宝上种草是什么意思 编辑:程序博客网 时间:2024/06/05 17:44
std::vector—swap
众所周知,vector占用内存在初始化时就已经分配好了,当内存不足时会重新分配并把之前的成员拷贝到新的内存中去。但是,比如当vector占用内存为1024字节时,erase()掉1020个字节,有效元素就只占用4个字节,并且剩下的1020个字节已经确定不会再使用时,就需要回收剩下没用的1020个字节了,这个vector对象占用空间还是为1024字节,clear()也是不行的,它会清除掉整个vector对象的内存,这时候就需要容器的swap()函数来回收vector对象没有使用的内存。
#include<iostream>#include <vector>void main(){ int x = 10; std::vector<int> myvector(10000, x); cout << "myvector size:" << myvector.size() << endl; auto iter = myvector.begin(); iter++; iter++; iter++; iter++; while(iter != myvector.end()){ iter = myvector.erase(iter); } std::vector<int> vec; vec.swap(myvector); cout << "after swap :" << vec.size() << endl; system("pause"); }
输出:myvector size:10000after swap :4
参考资料:
简单的程序诠释C++ STL算法系列之十五:swap
阅读全文
0 0
- std::vector---swap
- std::vector<X>().swap(*XX) 的用意
- std::swap
- vector ----Swap
- std::vector
- std vector
- std::vector
- std::vector
- std::vector
- std::vector
- std::vector
- std::vector
- std::vector
- std::vector
- std::vector
- about std::swap
- std::map与std::vector
- "std::_List_node_base::reverse()","std::_List_node_base::swap(std::_List_node_base&, std::_List_node
- 27. Remove Element —— Java
- SORA使用
- C++11 自动释放锁
- myid文件缺失导致zookeeper无法启动(myid file is missing)
- 日期工具类DateUtils
- std::vector---swap
- android studio卡在 Building 'android' Gradle project info
- Aspose.Cells Excel导出导入
- 阿里云ECS服务器申请和配置(Windows镜像)
- Problem D. Clones and Treasures XVII Open Cup named after E.V. Pankratiev||简单模拟
- 微信支付通知方法-附上部分代码
- TabLayout的TabItem自定义
- 大富翁游戏
- TaskRun 方法