【发布时间】:2014-03-11 23:29:13
【问题描述】:
我将所有枚举放入一个集合中。我正在尝试遍历集合并使用 switch 语句来给变量值(还没有这样做)。我无法设置一个迭代器来放入 switch 语句,它会告诉我我正在使用哪个枚举。这是我的代码。 *it 给了我一个空值。
for(std::set<CreateAndUseIniFile::iniFileValues>::iterator it=m_modules.begin(); it!=m_modules.end(); ++it)
{
switch(*it)
{
case CreateAndUseIniFile::VOLTAGE1_OFFSET:
break;
case CreateAndUseIniFile::VOLTAGE12_OFFSET:
break;
case CreateAndUseIniFile::VOLTAGE123_OFFSET:
break;
}
}
这是我添加到集合中的代码
m_modules.insert(CreateAndUseIniFile::VOLTAGE1_OFFSET);
m_modules.insert(CreateAndUseIniFile::VOLTAGE12_OFFSET);
m_modules.insert(CreateAndUseIniFile::VOLTAGE123_OFFSET);
这里是枚举
class CreateAndUseIniFile {
public:
enum iniFileValues
{
VOLTAGE1_OFFSET,
VOLTAGE12_OFFSET,
VOLTAGE123_OFFSET
}
std::set<CreateAndUseIniFile::iniFileValues> m_modules;
};
【问题讨论】:
-
在 C++11 中,你更喜欢在你的类中使用枚举类而不是这个枚举。
标签: c++ stl enums set switch-statement