在 C++ 中迭代枚举

s73*_*v3r 0 c++ enums

C++ 枚举问题。

所以我有一个文件列表及其 ID,我需要对其进行迭代并执行操作。大多数内容是相同的,但有一些特定于文件的事情需要完成。我尝试将文件 ID 放入枚举中,然后对其进行迭代。然而,文件 ID 是不连续的,并且会跳跃。

目前,我有类似的东西

for(int i = 0; i < FILE_ENUM_MAX; i++)
{
    currentFile = myEnum(i);
    // do stuff
}

enum myEnum {
    file1 = 0x1111,
    file2 = 0x8000,
    file3 = 0x75,
    file4 = 0x120,
    FILE_ENUM_MAX = 4
}
Run Code Online (Sandbox Code Playgroud)

这是行不通的;我只是浏览文件 0、1、2 和 3。我的想法是,我不能通过询问项目 N 来获取枚举中的第 N 个项目。那么迭代此枚举的最佳方法是什么?或者我应该摆脱它?我可能可以按数字顺序排列项目,但我更喜欢顺序无关紧要的解决方案。

Lim*_*ans 5

不幸的是,C++ 没有提供您想要的迭代枚举的方法。