-1

我创建了一个列表并将一些值放入其中。我的列表将其内容复制到一个数组中,然后打印出来。我的问题是,如何删除我创建的列表?

这是我的代码:

void main()
{   
    std::list<char> list;

    while (1)
    {
        char in=0;
        while(1)
        {
            scanf("%c",&in);
            if(in=='\n') break;
            list.push_back(in);
        }
        char* array=new char[list.size()]; // create a dynamic array   
        list<char> first;
       std::copy(list.begin(),list.end(),array); // copy the data 
        for (int i=0 ; i<list.size() ; i++) printf("%c",array[i]);
                printf("\nsize of array is: %d\n", list.size());
                delete [] array; // destroy the dynamic array
    }
}
4

1 回答 1

0

试图猜测您的意思,我猜您希望名为“列表”的列表在每次外循环迭代后清除其内容。list.clear() 将这样做,将 list 的声明移动到外循环内。析构函数将正确释放您分配的任何资源,并且每次迭代都会有一个新实例。

于 2012-05-22T04:07:55.550 回答