2015-06-10 107 views
0
class Comp 
{ 
    //... 
}; 

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

我需要初始化類對象的類向量的向量。我怎麼能初始化它?類指針初始化向量

+0

可能重複[如何初始化指針的矢量(http://stackoverflow.com/questions/9090680 /如何初始化一個向量的指針) – Mureinik

+1

呃...你如何*想要初始化它?作爲初始化的最終結果,你想獲得什麼?如果你沒有具體說明你想要做什麼,你期望得到什麼建議? – AnT

回答

0

使用vec.push_back(new Comp())但要記住使用delete vec[<item>]

2

您可以設置一個初始大小(例如10,如下圖所示),充滿了NULL值與構造函數刪除所有項目:

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

你還可以使用push_back(), push_front()insert()方法以各種方式插入元素。

+0

什麼是vec中的「10」(10,NULL) – Spanky

+0

@Spanky:請參閱edit – Novelocrat

1

的載體是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