动态获取结构中的成员值

时间:2018-02-12 15:57:45

标签: c++ data-structures struct structure

这里有一个结构:

struct date
 {
  int day;
  int month;
  int year;
 }frmt;

初始化结构并为成员分配值。 现在,我希望使用动态变量获得成员的价值。

通常我们使用frmt.day来获取该成员的值。 现在让std :: string str1 =“day”; 如何使用str1获取成员值? 我可以使用str1.c_str()??

1 个答案:

答案 0 :(得分:0)

您可以在示例中使用std::map<std::string, int>std::unordered_map<std::string, int>作为简单结构。在这种情况下,您应该在代码的所有位置将frmt.day替换为frmt["day"]等。因此,您可以拨打frmt[str1]

如果一个struct有不同类型的成员,你可以使用std::variant代替int(从C ++ 17开始)。