【问题标题】:Dynamic array length in struct结构中的动态数组长度
【发布时间】:2019-04-27 16:18:40
【问题描述】:

我想做的是创建一个具有另一个结构数组的结构,我想在运行时设置数组的大小。有没有办法做到这一点? 结构是这样的:

struct MyStruct
{
  AnotherStruct list[];
  int key;
  bool isLeaf;
}

【问题讨论】:

  • std::vector<AnotherStruct> list;
  • 请将此作为答案发布,以便我将其标记为正确答案。
  • @IvanKukic 忘了提——你需要先发布AnotherStruct,然后再建议将其放入向量中。如果它具有正确的复制语义,那么是的,std::vector<AnotherStruct> 可以安全使用。
  • @JerryJeremiah 这两个问题,对于这种情况,答案过于复杂(他们假设作者不只是想使用向量)

标签: c++ struct b-tree


【解决方案1】:

一种方法是:

#include <vector>

struct MyStruct
{
    std::vector<AnotherStruct> list;
    int key;
    bool isLeaf;
};

如果您不熟悉向量,可以在任何 C++ 参考资料中了解如何使用它们。

【讨论】:

  • 我认为他想避免像std::vector 那样存储额外的指针和大小变量。
  • 我决定采用这种方法,在向其添加元素时检查向量是否具有比我希望的更多的元素。
  • @GillBates 我没有从这个问题中得到那种印象,第一句话中的要求已经很清楚了。无论如何,首先使用简单的代码让代码工作并不是一个糟糕的方法,如果你想优化内存使用,你可以在你准备好分析和比较的时候这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多