当前位置:  开发笔记 > 编程语言 > 正文

Enum C++按索引获取

如何解决《EnumC++按索引获取》经验,为你挑选了2个好方法。

我想知道在C++中我是否有枚举可以访问第二个索引的值?比如我有

enum Test{hi, bye};

如果我想'嗨',我可以做一些像Test [0],谢谢.



1> JaredPar..:

是的,不是.如果你的枚举没有明确的值,那么就有可能.如果没有显式值,则枚举值按声明的顺序给出数值0-N.例如 ...

enum Test {
  hi, // 0
  bye // 1
}

这意味着索引只是转换为文字值.

Test EnumOfIndex(int i) { return static_cast(i); }

这当然在运行时进行0验证,并且一旦添加显式值,它就会崩溃.但它将在默认情况下工作.



2> xan..:

除非另有说明,否则枚举开始编号为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);
}


使用static_cast (i)代替(Test)i
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有