定义结构数组

时间:2018-03-21 00:14:57

标签: c++ arrays struct

我有数据要分配给结构数组。

有点像你怎么做:

int foo [5] = { 16, 2, 77, 40, 12071 };

为什么这不适合这样的事情:

定义结构类型。

struct Creature {
  std::string name;
  int x, y;
};

然后是阵列。

const Creature list[NUM_CREATURES] = {
  name = "Walrus";
  x = 2; y = 6;,
  name = "Sardine";
  x = 3; y = 1;,
  name = "Seahorse";
  x = 4; y = 2;,
  name = "Jellyfish";
  x = 1; y = 10;,
  name = Dolphin";
  x = 8; y = 4;
  }

我将所有这些都放在头文件中。我将此列表定义为常量,因为我将使用这些来填充另一个更大的数组,然后按x和y维的大小对数组进行排序。

1 个答案:

答案 0 :(得分:4)

您必须初始化初始化程序中的每个结构。

const Creature list[NUM_CREATURES] = {
  { "Walrus", 2, 6 },
  { "Sardine", 3, 1 },
  ...
}

通过统一初始化,您无需执行(并且无法做到) name= / x= / ect