我有一个这样的枚举。
enum objects {
BAG_BOOK,
BAG_PEN,
BAG_FOLDER,
HOUSE_DOOR,
HOUSE_FLOOR,
HOUSE_TABLE
};
现在我想能够选择一个对象(使用一个uint8)并查询它属于哪个类别(袋子或房子)。问题是我有时会在枚举中添加一些条目,因此我不能说它属于0-2类的bag和3-5类的house。有谁知道我如何解决这个问题,或者我如何对枚举进行分类?
PS:真正的枚举比例子更复杂一些。
"我有时会在枚举中添加一些条目" 你到底是怎么做的?你不能在运行时改变枚举,所以你必须静态地添加项目。在这种情况下,你知道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;