我有一个这样的枚举:
enum objects {
BAG_BOOK,
BAG_PEN,
BAG_FOLDER,
HOUSE_DOOR,
HOUSE_FLOOR,
HOUSE_TABLE
};现在,我希望能够选择一个对象(使用uint8)并查询它属于哪个类别(包或房子)。问题是我有时会在枚举中添加一些条目,因此我不能说它来自0-2类别包和3-5房子。
有谁知道我该如何解决这个问题,或者我该如何对枚举进行分类?
PS:真正的枚举比示例稍微复杂一点
发布于 2020-06-13 18:27:10
“我有时会在枚举中添加几个条目”你到底是怎么做的?您不能在运行时更改枚举,因此必须静态添加这些项。在本例中,您知道BAG和HOUSE的索引范围。
您可以使用地图,这将最好地满足您的需求。试试这个-
map<int, string> my_map;
my_map[14] = "bag";
my_map[9] = "house";
my_map[67] = "something else";
//enumerate all items in your map
for(auto x : my_map){
cout << x.first << " " << x.second << endl;
}
//check a specific item in the map
cout << my_map[9] << endl;https://stackoverflow.com/questions/62358089
复制相似问题