【发布时间】:2012-10-31 09:48:40
【问题描述】:
我可以使用我预先存在的数据创建std::vector,而不是分配新内存并复制数据吗?
为了更清楚,如果我有一个内存区域(c 数组或另一个向量的一部分或其他)并且我想提供类似向量的访问,我可以创建一个向量并告诉它使用它吗内存块?
【问题讨论】:
-
你打算如何使用那个向量?
-
也许完全不使用
vector或类似容器会更好。为什么要将数据放入单独的容器中? -
知道如何使用向量很重要。例如,在 Luchian 的回答中,结果向量不会是
vector<T>,而是vector<T,MyAllocator>。因此,如果您需要向量的原因是将其传递给某个需要vector<T>的函数,那么这对您没有帮助。如果您需要该向量用于其他目的,那么它可能会对您有所帮助。 -
@SteveJessop 我正在尝试创建一个行为尽可能类似于向量的二维数组类。各种方法将返回一个“行”,它实际上是内部“平面”向量的一部分。我想如果需要,我可以只返回迭代器,但返回向量对我来说似乎更合乎逻辑。