vector内存释放

光clear是不释放内存的,将你这段代码修改了一下,你看看,应该能明白了,不明白运行一下就知道了。

int main()
{
    vectorit;
    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().swap(it);
    cout << "swap后容器大小为: " << it.size() << "容器容量为: " << it.capacity() << endl; //swap

    return 0;
}

 

 

运行结果:

 

未放元素时容器大小为: 0容器容量为: 0
放元素后容器大小为: 100000容器容量为: 131072
clear后容器大小为: 0容器容量为: 131072
swap后容器大小为: 0容器容量为: 0

 

 

From:http://blog.sina.com.cn/s/blog_9d549eab0100zt7r.html

你可能感兴趣的:(C++相关)