-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 に答える