在C 中使用结构作为映射中的值

Using structure as a value in map in C++

本文关键字:映射 结构      更新时间:2023-10-16

我正在处理旧版代码,有一个a类,其枚举成员定义为这样

class A
{
private:
 enum E{ kRemove, kDoNotRemove};
 static map<String, MapValue> s_Map; //this map I am trying to add
}

我正在尝试在此类中添加一张地图,该映射将其结构作为一个类似的值

 struct MapValue{
      E e; //this enum is defined in private section in the class
      String T;
      String F;
  } ;

我无法理解的是我应该在哪里定义此struct mapvalue?

我的理解:

  • 如果我只要创建一个对象,结构VAR将被分配。这没有用,因为我正在使用构造仅作为地图的值。我也不是当我将其用作该结构的值时,只需要一个副本地图。
  • 如果我在班级外添加它,那将不是一个很好的设计struct仅在班级内部,因此不应该是全局。也是结构有枚举成员,该成员在班上定义为私人,因此

请建议。

如果您声明类中的类型,就像枚举声明一样,您不是在分配新实例。这只有在创建对象时才会发生。