【发布时间】:2014-07-03 17:28:34
【问题描述】:
如果我有一个固定数量属于 MyClass 类的元素,我应该使用数组还是向量?例如:
MyClass* myArray[];
或
std::vector<MyClass*> myVector;
?
【问题讨论】:
-
可能是
std::array。这取决于你有多少元素。如果太多,您可能必须使用std::vector。 -
如果元素由当前实例管理或在当前范围内使用
std::array<MyClass, N>或std::array<MyClass*, N>否则。 -
还要考虑使用类的向量而不是指针的向量。指针在那里没有任何作用,除非你在做多态性或共享所有权,在这种情况下,智能指针比裸 C 指针好得多。
-
vector<MyClass>比vector<MyClass *>更不让人头疼,如果你能以这种方式满足你的要求的话。 (array也是如此) -
如果你必须使用指向
MyClass的指针,你至少应该使用shared_ptr或unique_ptr。