我想知道在C++中我是否有枚举可以访问第二个索引的值?比如我有
enum Test{hi, bye};
如果我想'嗨',我可以做一些像Test [0],谢谢.
是的,不是.如果你的枚举没有明确的值,那么就有可能.如果没有显式值,则枚举值按声明的顺序给出数值0-N.例如 ...
enum Test { hi, // 0 bye // 1 }
这意味着索引只是转换为文字值.
Test EnumOfIndex(int i) { return static_cast(i); }
这当然在运行时进行0验证,并且一旦添加显式值,它就会崩溃.但它将在默认情况下工作.
除非另有说明,否则枚举开始编号为0,每个条目递增1.
enum Test { hi, //0 bye, //1 count //2 }
您可以将int转换为枚举的类型以获取所需的值,例如:
(Test)0; //or Test(0);
这可以让你做以下事情:
for(int i = 0; i < count; i++) { DoSomething((Test)i); }