zoukankan      html  css  js  c++  java
  • vector内存释放问题

    一般,如果vector中存放是的指针,那么必须先遍历一遍,释放指针所指向的内存。(如果vector的元素是内置类型,那么就没有必要做这一步)
    然后在释放vector中各元素所占内存,这时候可以用swap方法。
    注意,Clear函数只是清除元素,并不释放内存。

    看下列代码:

    #include <vector>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        vector<double>it;
        double a[100000];
        for(int i=0;i<100000;i++)
        {
            a[i]=i;
        }
        cout << "未放元素时容器大小为: " << it.size() << "容器容量为: " << it.capacity() << endl; //未放元素
        for(int i=0;i<100000;i++)
        {
            it.push_back(a[i]);
        }
        cout << "放元素后容器大小为: " << it.size() << "容器容量为: " << it.capacity() << endl; //放元素
        it.clear();
        cout << "clear后容器大小为: " << it.size() << "容器容量为: " << it.capacity() << endl; //clear
        vector<double>().swap(it);
        cout << "swap后容器大小为: " << it.size() << "容器容量为: " << it.capacity() << endl; //swap
    
        return 0;
    }
    

    运行结果:

  • 相关阅读:
    elementUI form select验证问题
    Echart--基本属性
    Echart--饼状图
    Echart--折线图
    Echart--多个柱形图
    Echart--单个柱形图
    Echart--圆型图
    构析函数和构造函数
    心情
    图片
  • 原文地址:https://www.cnblogs.com/How-Come/p/11771128.html
Copyright © 2011-2022 走看看