这里有一个结构:
struct date
{
int day;
int month;
int year;
}frmt;
初始化结构并为成员分配值。 现在,我希望使用动态变量获得成员的价值。
通常我们使用frmt.day来获取该成员的值。 现在让std :: string str1 =“day”; 如何使用str1获取成员值? 我可以使用str1.c_str()??
答案 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开始)。