【问题标题】:dynamic size array in linked list链表中的动态大小数组
【发布时间】:2016-04-13 06:30:11
【问题描述】:

我想要一个带有动态大小的变量的链表, 因为我只想为不同节点中的变量分配不同的大小。
例如 node1 有一个大小为 1 的数组变量,但节点 2 有一个大小为 10 的数组变量,node3 从不分配这个数组。 像这样:

struct st{
   int * var_dynamic;
   int x;
};

现在我想初始化它们。对于静态的,是这样的:

struct st st1;
st1.x=1;

但是如何初始化动态的呢?
是这样的吗?

st1.var_dynamic= new int [100];

如果是,这种方式是否正确有效?

【问题讨论】:

  • st1.array[1]=1; 你没有提到array 变量。另外,你听说过std::vector吗?
  • 为什么不使用std::vector?它旨在高效且无错误。
  • 您想在 C++ 中使用列表吗?如果是这样,您只需使用std::list。或者你想要一个数组?然后你想要std::vector。还是你想自己实现一个数据结构?
  • @NicolBolas 是的,你说得对,我更正了
  • @FrerichRaabe 不,我想使用它,谢谢您的建议。

标签: c++ arrays linked-list


【解决方案1】:

最惯用、最直接、最安全的解决方案是简单地使用std::vector

struct st
{
  std::vector<int> var_dynamic;
  int x;
};

如需使用std::vector,请咨询reference documentation,或您最喜欢的book

【讨论】:

  • @FattanehTalebi 我建议您先查阅我链接的文档,或者从我链接的文档中挑选一本介绍性/参考书。然后,如果还有什么不清楚的地方,搜索SO和互联网,如果仍然不清楚,再问一个问题。
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
相关资源
最近更新 更多