Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我可以用指针创建一个数组变量吗?怎么用?_C++_Arrays_Pointers - Fatal编程技术网

C++ 我可以用指针创建一个数组变量吗?怎么用?

C++ 我可以用指针创建一个数组变量吗?怎么用?,c++,arrays,pointers,C++,Arrays,Pointers,现在,我有一个称为“list”的向量,包含1000个String类型的元素。 这个向量由一个递归函数动态填充,该函数在一个目录中发现文件并加载文件 我可以使用数组来保存只占用所需最小存储空间的元素列表吗?如何创建?您完全可以创建指向std::string元素的指针数组 这些元素仍然会占用内存空间,所以如果你的目标是节省空间,你可以忘记这个策略 节省空间的一个简单方法是不要让向量以1000大小开始。向量只占用最小的空间,然后增长。这是他们的设计目标之一。您完全可以创建指向std::string元素

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


我可以使用数组来保存只占用所需最小存储空间的元素列表吗?如何创建?

您完全可以创建指向std::string元素的指针数组

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


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

您完全可以创建指向std::string元素的指针数组

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


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

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


也就是说:为什么要担心中等长度的O(1000)个字符串呢?

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

也就是说:为什么要担心长度适中的O(1000)个字符串呢?

您可以通过以下操作:

std::string * list = new std::string[1000];
然后,请记住:

delete [] list;
但是如果你要动态地做这件事,那么向量会更好。当您可能只需要300个元素时,为什么要分配1000个元素?也不确定为什么要在此处使用指针。

您可以执行以下操作:

std::string * list = new std::string[1000];
然后,请记住:

delete [] list;

但是如果你要动态地做这件事,那么向量会更好。当您可能只需要300个元素时,为什么要分配1000个元素?也不太清楚为什么要在这里使用指针。

如果元素的数量是静态的,是的,应该使用数组而不是向量。@Michael他是这么问的吗?很明显,如果扫描目录,它不是静态的。@W.B.是的,它可能不是静态的,但他也指定有1000个元素。@Michael抱歉,我的意思是我现在有一个包含1000个元素的数组/向量,我想做的是确保它以最好的方式适合内容。我选择1000是因为它只是我的笔驱动器上出现的歌曲的最大数量。如果你有一个静态的元素数,是的,你应该使用数组而不是向量。@Michael,这就是他要问的吗?很明显,如果扫描目录,它不是静态的。@W.B.是的,它可能不是静态的,但他也指定有1000个元素。@Michael抱歉,我的意思是我现在有一个包含1000个元素的数组/向量,我想做的是确保它以最好的方式适合内容。我选择1000首,因为这是我笔下最多的歌曲数。谢谢你的帮助!我不知道“节点”列表。他们马上就去钻研。谢谢你的帮助!我不知道“节点”列表。他们马上就去钻研。