我可以使用指针创建数组变量吗?怎么样?

时间:2014-02-12 13:57:35

标签: c++ arrays pointers

现在,我有一个名为“list”的向量,其中包含1000个String类型的元素。 此向量由递归函数动态填充,该函数发现一个目录中的文件并加载它。

我可以使用数组来保存仅占用最少存储空间的元素列表吗?怎么样?

3 个答案:

答案 0 :(得分:3)

你绝对可以创建一个指向std :: string元素的指针数组。

这些元素仍占用内存空间,所以如果你的目标是节省空间,你可以忘记这个策略。

节省空间的一种简单方法是不要让矢量从1000开始。矢量只占用最小的空间然后增长。这是他们的设计目标之一。

答案 1 :(得分:2)

您可以这样做:

std::string * list = new std::string[1000];

然后记住:

delete [] list;

但是如果你要动态地做这个,那么矢量会更好。为什么在可能只需要300时分配1000个元素?也不确定为什么要在这里使用指针。

答案 2 :(得分:1)

通过将每个字符串存储在包含根据字符串长度分配的char []和指向下一个节点的指针(即单个链接列表)的节点中,可以实现小内存占用。

那说:为什么要担心中等长度的O(1000)字符串?