0

我必须Vector<MyObject*>通过调用来实现AnotherClass::objectCollections()。所以这里的返回类型应该是Vector<MyObject*>. 另外我必须MyObject*从另一个可以返回的函数中返回每个MyObject*。这样它就可以填充向量。我是 C++ 核心编程的新手。我想知道在不崩溃的情况下实现这一点的更安全方法,即使动态创建的向量数组数量很大,如果您提供足够的示例或与所需返回类型的链接,它将非常有帮助。

4

1 回答 1

0

好的,这是一个示例。我用一些指向整数的指针填充了一个向量。然后我将它们一一删除,最后清除向量。如果我不会在 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 回答