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
。