【问题标题】:vector of class pointers initialization类指针初始化向量
【发布时间】:2015-06-10 05:09:55
【问题描述】:
    class Comp
{
    //...
};

class MyClass
{
private:
    vector<Comp*>vec;
    //...
};

我需要初始化一个指向对象的类类型指针向量。我怎样才能初始化它?

【问题讨论】:

  • 呃...你想要如何初始化它?作为初始化的最终结果,您希望获得什么?如果您没有具体说明您想要做什么,您希望如何获得任何建议?

标签: c++ vector initialization


【解决方案1】:

您可以设置一个初始大小(例如10,如下所示),用构造函数填充所有NULL值:

vector<Comp*> vec(10, NULL);

您还可以使用push_back(), push_front()insert() 方法以各种方式插入元素。

【讨论】:

  • 什么是 vec(10, NULL) 中的“10”
【解决方案2】:

使用vec.push_back(new Comp()),但记得删除所有使用delete vec[&lt;item&gt;]的项目

【讨论】:

    【解决方案3】:

    向量是private,我会让构造函数使用成员初始化器列表对其进行初始化:

    class MyClass
    {
    public:
        MyClass();
    private:
        vector<Comp*> vec;
    };
    
    MyClass::MyClass()
    : vec(10, nullptr) // edit to suit the size and content.
    {}                 // alternatively initialize it inside the body {} with loop
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 2020-04-12
      相关资源
      最近更新 更多