gpt4 book ai didi

c++ - (如何)我可以计算枚举中的项目吗?

转载 作者:IT老高 更新时间:2023-10-28 11:58:26 26 4
gpt4 key购买 nike

当我有类似的事情时,我想到了这个问题

enum Folders {FA, FB, FC};

并想为每个文件夹创建一个容器数组:

ContainerClass*m_containers[3];
....
m_containers[FA] = ...; // etc.

(使用 map 更优雅:std::map<Folders, ContainerClass*> m_containers;)

但是回到我最初的问题:如果我不想硬编码数组大小怎么办,有没有办法弄清楚文件夹中有多少项目? (不依赖例如 FC 是列表中的最后一项,如果我没记错的话,这将允许类似 ContainerClass*m_containers[FC+1] 的内容。)

最佳答案

没有真正的好方法可以做到这一点,通常你会在枚举中看到一个额外的项目,即

enum foobar {foo, bar, baz, quz, FOOBAR_NR_ITEMS};

那么你可以这样做:

int fuz[FOOBAR_NR_ITEMS];

虽然还是不太好。

但是你当然意识到枚举中的项目数量是不安全的,例如

enum foobar {foo, bar = 5, baz, quz = 20};

项目数为 4,但枚举值的整数值将超出数组索引范围。使用枚举值进行数组索引并不安全,您应该考虑其他选项。

编辑:根据要求,使特殊条目更加突出。

关于c++ - (如何)我可以计算枚举中的项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2102582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com