现在,我有一个名为“list”的向量,其中包含1000个String类型的元素。 此向量由递归函数动态填充,该函数发现一个目录中的文件并加载它。
我可以使用数组来保存仅占用最少存储空间的元素列表吗?怎么样?
答案 0 :(得分:3)
你绝对可以创建一个指向std :: string元素的指针数组。
这些元素仍占用内存空间,所以如果你的目标是节省空间,你可以忘记这个策略。
节省空间的一种简单方法是不要让矢量从1000开始。矢量只占用最小的空间然后增长。这是他们的设计目标之一。
答案 1 :(得分:2)
您可以这样做:
std::string * list = new std::string[1000];
然后记住:
delete [] list;
但是如果你要动态地做这个,那么矢量会更好。为什么在可能只需要300时分配1000个元素?也不确定为什么要在这里使用指针。
答案 2 :(得分:1)
通过将每个字符串存储在包含根据字符串长度分配的char []和指向下一个节点的指针(即单个链接列表)的节点中,可以实现小内存占用。
那说:为什么要担心中等长度的O(1000)字符串?