我刚刚开始用C ++进行编码。我的第一个任务是创建一个枚举的集合,并使用枚举值作为每个字符串值的键将字符串值传递给set。我不知道该怎么做。
我最好的猜测。
typedef enum sendDataElements
{
Data1,
Data2,
Data3,
Data4,
}
std::set<string, sendDataElements> m_modules;
m_modules.insert(message, Data1);
虽然不编译。请帮忙。
答案 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在尝试存储键和值时仅接受键。您可能正在寻找使用地图。我还更新了您的枚举的样式。