0

Vector<MyObject*>を呼び出して実装する必要がありAnotherClass::objectCollections()ます。したがって、ここでの戻りタイプはですVector<MyObject*>MyObject*また、を返す可能性のある別の関数からそれぞれを返す必要がありMyObject*ます。ベクターにデータを入力できるようにします。私はC++コアプログラミングの初心者です。動的に作成されたベクトル配列の数が多い場合でも、クラッシュせずにこれを実装するためのより安全な方法を知りたいので、適切な例を提供するか、必要な戻り型とリンクすると非常に役立ちます。

4

1 に答える 1

0

わかりました、ここにサンプルがあります。ベクトルにいくつかのintへのポインタを入力します。次に、それらを1つずつ削除し、最後にベクトルをクリアします。Vector.clear()の前に各要素でdelete演算子を手動で呼び出さないと、メモリリークが発生します。

    std::vector<int*> Vector;
    for (int i = 0; i < 10; i++)
        Vector.push_back(new int(i));

    std::vector<int*>::const_iterator It;

    for (It = Vector.begin(); It != Vector.end(); It++)
    {
        int* n = *It;
        if (n) delete n;
    }
    Vector.clear();  
于 2012-04-22T16:36:36.497 に答える