【发布时间】:2020-12-31 06:43:27
【问题描述】:
SomeClass* a = new SomeClass;
很简单,但我听说std::vector 比new 更可取。但是,
std::vector<SomeClass> a(1);
也感觉很奇怪,因为当我使用a[0] 时,并不清楚我将其用作变量而不是数组。这样做没有什么问题吗,或者有更好的方法吗?
编辑:我特别想做的是在函数中创建一个类实例并返回它而不复制它。
编辑:将 int 更改为 SomeClass。
【问题讨论】:
-
反问:为什么想要或需要动态分配单个变量? YAGNI 是唯一正确的答案。
-
好的,我应该更具体一点——如何动态分配单个类?
-
std::make_unique?
-
std::unique_ptr<int>你不需要用这种方式来更新/释放自己。 -
使用
std::unique_ptr或std::shared_ptr。
标签: c++ vector new-operator dynamic-memory-allocation