归类还是划分枚举?

问题描述 投票:0回答:1

我有一个这样的枚举。

enum objects {
     BAG_BOOK,
     BAG_PEN,
     BAG_FOLDER,
     HOUSE_DOOR,
     HOUSE_FLOOR,
     HOUSE_TABLE
};

现在我想能够选择一个对象(使用一个uint8)并查询它属于哪个类别(袋子或房子)。问题是我有时会在枚举中添加一些条目,因此我不能说它属于0-2类的bag和3-5类的house。有谁知道我如何解决这个问题,或者我如何对枚举进行分类?

PS:真正的枚举比例子更复杂一些。

c++ enums categories
1个回答
0
投票

"我有时会在枚举中添加一些条目" 你到底是怎么做的?你不能在运行时改变枚举,所以你必须静态地添加项目。在这种情况下,你知道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;
© www.soinside.com 2019 - 2024. All rights reserved.