【发布时间】:2022-01-11 18:04:41
【问题描述】:
我有以下代码
std::vector<std::unique_ptr<Account>> openedAccounts;
(帐户是一个类),所以我有一个指针向量,我知道制作指针时的最佳做法是用某些东西初始化它或确保将其分配给 nullptr,但是当我这样做时 std::vector<std::unique_ptr<Account>> openedAccounts = nullptr; 或 @987654323 @它不起作用,那么我如何将openedAccounts设置为nullptr?
【问题讨论】:
-
请注意,初始化指向 nullptr only 的指针的建议适用于原始指针。所有定义明确的智能指针(其中
unique_ptr是其中之一)在构造时将默认为它们等效的nullptr,因此您无需担心。这适用于独立的unique_ptr或std::vector中的一个。另外,std::vector在创建时保证为空(除非您专门使用将填充它的非默认构造函数之一,但您必须故意这样做)。 -
向量不是可以为空的类型。最接近的是空向量,这是默认构造的向量。
-
一个vector指针是一个vector,而不是一个pointer。
标签: c++ oop pointers inheritance smart-pointers