【发布时间】:2023-01-19 01:05:31
【问题描述】:
我有一个这样定义的类变量:
std::shared_ptr<int[]> variable;
我想让它存储从 0 到 10 的整数
这样当我调用 variable[1] 时它返回 1 等等。
【问题讨论】:
-
为什么不使用
std::vector呢? -
std::make_shared<int[]>(sizeOfArray);godbolt.org/z/rcnc8K9Ko 但使用std::vector更方便。 -
你描述了你想如何解决某事,但也许如果你告诉我们你想做什么,我们可以给出更好的答案。
-
如果要存储一个值,请使用 int。如果你想存储多个整数并且你现在在编译时数组的大小使用
std::array<int,size>。如果您的数组可以在运行时增长,请使用std::vector<int>。数组和向量具有移动语义,您可以通过(常量引用)将它们传递给函数,因此您几乎不需要指向它们的指针(智能与否) -
您可能需要 this 和 std::vector 或 std::array
标签: c++ arrays dynamic-memory-allocation boost-smart-ptr