Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何按项索引返回与值索引对应的枚举?_C++_Enum Class - Fatal编程技术网

C++ 如何按项索引返回与值索引对应的枚举?

C++ 如何按项索引返回与值索引对应的枚举?,c++,enum-class,C++,Enum Class,如何通过“项索引”而不是“值索引”索引到枚举中: “值索引”(对我所做的工作没有帮助): 请注意,我是从另一个类获得此枚举类的。有很多。因此,我必须用给予我的东西来工作 我确实编写了一个变通方法,但如果能有一种更优雅的方法来获得结果,那就太好了。只需设置一个包含枚举值的数组,如下所示: static const eSerialBauds bauds_by_index [] = { eBaud110, eBaud300, eBaud600, eBaud1200, eBaud2400 }; 然后

如何通过“项索引”而不是“值索引”索引到枚举中:

“值索引”(对我所做的工作没有帮助):


请注意,我是从另一个类获得此枚举类的。有很多。因此,我必须用给予我的东西来工作


我确实编写了一个变通方法,但如果能有一种更优雅的方法来获得结果,那就太好了。

只需设置一个包含枚举值的数组,如下所示:

static const eSerialBauds bauds_by_index [] = { eBaud110, eBaud300, eBaud600, eBaud1200, eBaud2400 };
然后你可以做,例如:

eSerialBauds baud = bauds_by_index [3];

只需设置一个包含枚举值的数组,如下所示:

static const eSerialBauds bauds_by_index [] = { eBaud110, eBaud300, eBaud600, eBaud1200, eBaud2400 };
然后你可以做,例如:

eSerialBauds baud = bauds_by_index [3];

最简单的方法是构建一个枚举值数组

static constexpr auto sBaudIndex = std::array{eBaud100, eBaud200, eBaud600, eBaud1200, eBaud2400);
然后对该数组进行索引。它很脆弱,但我知道没有办法让编译器为您枚举枚举枚举值


如果不需要,可以跳过
enum
,只需使用数组中的WinBase值即可。最简单的方法是构建一个enum值数组

static constexpr auto sBaudIndex = std::array{eBaud100, eBaud200, eBaud600, eBaud1200, eBaud2400);
然后对该数组进行索引。它很脆弱,但我知道没有办法让编译器为您枚举枚举枚举值


如果不需要,您可以跳过
enum
,只需使用数组中的WinBase值即可

nvm I read太快。我收回我的重复投票。我的问题对其他人来说还不够清楚吗?我想是的,我只是粗心大意,但留下了评论,所以没有其他人投票认为它是重复的。我使用的目标使用
enum
而不是
enum class
,但基本上是相同的问题。如果你认为这不是一个合适的目标,请点击我。问题已经结束,但如果你想保持相同的语法,你可以这样做:nvm我读得太快了。我收回我的重复投票。我的问题对其他人来说还不够清楚吗?我想是的,我只是粗心大意,但留下了评论,所以没有其他人投票认为它是重复的。我使用的目标使用
enum
而不是
enum class
,但基本上是相同的问题。如果你认为这不是一个合适的目标,请点击我。问题已经解决,但如果你想保持相同的语法,你可以这样做:
std::array
需要一个用于大小的模板参数,你可以让它
constepr
std::array
需要一个用于大小的模板参数,您可以将其设置为
constexpr