首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

存储在堆里面的容器如何释放呢

2013-08-25 
存储在堆里面的容器怎么释放呢?内存释放,vector,堆内存[解决办法]delete school[解决办法]好吧 先不吐槽

存储在堆里面的容器怎么释放呢?

                                                  内存释放,vector,堆内存                                              
[解决办法]

delete school;

[解决办法]
好吧 先不吐槽你这个手打的时候写出了n多错误
[解决办法]
for(int i=20000000;i<20000;i--)
这里就不会执行for循环里的东西 真不知到你的bad_alloc()从哪里出来的



至于那个释放内存 1楼正解
[解决办法]

引用:
还不如直接粘贴了,哎,不好意思,我改一下,各位大神在看一下
#include<iostream>
#include<vector>
#include<string>

using namespace std;

class Student
{
public:
    Student(string _name,int _num):name(_name),num(_num){}
private:
    string name;
    int num;
};

vector<Student*>* getStudent(int num)
{
    vector<Student*> *stu=new vector<Student*>();          
    for(int i=0;i<num;i++)                
stu->push_back(new Student("Micheal",i));           
    return stu;
}
int main()
{

    for(int i=2000000;i>200000;i--)
    {
vector<Student*>* school=getStudent(i);             
        
for(vector<Student*>::iterator ite=school->begin();ite!=school->end();ite++)
{
delete *ite;
*ite=0;
}

        vector<Student*>().swap(*school);   
    }

    return 0;

}


vector<Student*>().swap(*school);这句干什么用的,没有意义吧?改成 delete school就行。如果这句有意义的话,在后面加一句 delete school就行。
[解决办法]
引用:
Quote: 引用:


delete school;


请问大神,是那一句需要换位delete school 呢?还是在哪儿加一句delete school呢?

引用:
好吧 先不吐槽你这个手打的时候写出了n多错误

请问大神,是那一句需要改为delete school 呢?还是在哪儿加一句delete school 呢?




vector<Student*>* school=getStudent(i);
            for(vector<Student*>::iterator it=school->begin();it!=school->end();it++)
               {


                      delete *it
                      *it=0;
             }
             vector<Student*>().swap(*school);
 delete school;

热点排行