首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不知道将创建多少个对象的情况下,如何初始化对象指针的向量?

在不知道将创建多少个对象的情况下,可以使用动态内存分配来初始化对象指针的向量。以下是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <vector>

class MyClass {
public:
    MyClass() {
        std::cout << "MyClass constructor" << std::endl;
    }
};

int main() {
    std::vector<MyClass*> objVector;

    // 假设不知道要创建多少个对象,可以使用循环来动态分配内存并初始化对象指针
    int numObjects = 5; // 假设要创建5个对象
    for (int i = 0; i < numObjects; i++) {
        MyClass* newObj = new MyClass(); // 动态分配内存并调用构造函数初始化对象
        objVector.push_back(newObj); // 将对象指针添加到向量中
    }

    // 使用对象指针进行操作
    for (const auto& objPtr : objVector) {
        // 对象指针可以通过箭头运算符来访问对象的成员函数和成员变量
        // 例如:objPtr->someFunction();
    }

    // 释放动态分配的内存
    for (const auto& objPtr : objVector) {
        delete objPtr; // 释放对象指针指向的内存
    }

    return 0;
}

在上述示例中,我们使用了std::vector来存储对象指针。通过循环动态分配内存并初始化对象,然后将对象指针添加到向量中。之后,我们可以使用对象指针进行操作。最后,记得释放动态分配的内存,避免内存泄漏。

请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 全网最硬核 JVM 内存解析 - 11.元空间分配与回收流程举例

    前文我们没有提到,如何限制元空间的大小,其实就是限制 commit 的内存大小。元空间的限制不只是受限于我们的参数配置,并且前面我们提到了,元空间的内存回收也比较特殊,元空间的内存基本都是每个类加载器的 ClassLoaderData 申请并管理的,在类加载器被 GC 回收后,ClassLoaderData 管理的这些元空间也会被回收掉。所以,GC 是可能触发一部分元空间被回收了。所以元空间在设计的时候,还有一个动态限制 _capacity_until_GC,即触发 GC 的元空间占用大小。当要分配的空间导致元空间整体占用超过这个限制的时候,尝试触发 GC。这个动态限制也会在每次 GC 的时候动态扩大或者缩小。动态扩大以及缩小

    01
    领券