class Comp
{
//...
};
class MyClass
{
private:
vector<Comp*>vec;
//...
};
我需要初始化類對象的類向量的向量。我怎麼能初始化它?類指針初始化向量
class Comp
{
//...
};
class MyClass
{
private:
vector<Comp*>vec;
//...
};
我需要初始化類對象的類向量的向量。我怎麼能初始化它?類指針初始化向量
使用vec.push_back(new Comp())
但要記住使用delete vec[<item>]
您可以設置一個初始大小(例如10,如下圖所示),充滿了NULL值與構造函數刪除所有項目:
vector<Comp*> vec(10, NULL);
你還可以使用push_back(), push_front()
和insert()
方法以各種方式插入元素。
什麼是vec中的「10」(10,NULL) – Spanky
@Spanky:請參閱edit – Novelocrat
的載體是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
可能重複[如何初始化指針的矢量(http://stackoverflow.com/questions/9090680 /如何初始化一個向量的指針) – Mureinik
呃...你如何*想要初始化它?作爲初始化的最終結果,你想獲得什麼?如果你沒有具體說明你想要做什麼,你期望得到什麼建議? – AnT