如何将set和enum一起使用?

时间:2018-08-01 19:37:12

标签: c++

我刚刚开始用C ++进行编码。我的第一个任务是创建一个枚举的集合,并使用枚举值作为每个字符串值的键将字符串值传递给set。我不知道该怎么做。

我最好的猜测。

typedef enum sendDataElements
{
    Data1,
    Data2,
    Data3,
    Data4,
}
std::set<string, sendDataElements> m_modules;
m_modules.insert(message, Data1);

虽然不编译。请帮忙。

1 个答案:

答案 0 :(得分:4)

#include <map>

int main()
{
    enum SendDataElements
    {
        SEND_DATA_1,
        SEND_DATA_2,
        SEND_DATA_3,
        SEND_DATA_4,
    };

    std::map<std::string, SendDataElements> modules;
    modules["poop"] = SEND_DATA_1;
}

正如其他人在您的原始问题的评论中所说,std :: set在尝试存储键和值时仅接受键。您可能正在寻找使用地图。我还更新了您的枚举的样式。