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;
    }
    

    运行结果:

  • 相关阅读:
    Network UVA
    The Unique MST POJ
    Borg Maze POJ
    javabean,pojo,vo,dto,
    core data,
    iOS block的用法
    写给程序员:我们这一代不是汽车工人
    编译器是如何工作的?
    SQLite可视化管理工具汇总
    NSFetchedResultsController
  • 原文地址:https://www.cnblogs.com/How-Come/p/11771128.html
Copyright © 2011-2022 走看看