C++ 如何将int转换为枚举值c++;

C++ 如何将int转换为枚举值c++;,c++,enums,C++,Enums,我该怎么做 int k = 23; enum stat_t { first = 0, second, last = k }; 也许你知道我怎么做吗?使用const int const k = 23; enum stat_t { first = 0, second, last = k }; 使常数int k=23。这没有多大意义。枚举是声明,需要在编译时知道。这里的int k是一个非常量变量。如果它是const/constexpr,那么您也可

我该怎么做

int k = 23;
enum stat_t {
    first = 0,
    second,
    last = k 
};

也许你知道我怎么做吗?

使用
const

int const k = 23;
enum stat_t {
    first = 0,
    second,
    last = k 
};

使
常数int k=23。这没有多大意义。枚举是声明,需要在编译时知道。这里的int k是一个非常量变量。如果它是const/constexpr,那么您也可以编写last=23@StarShine:除非命名常量(
k
)出现在多个地方。那么为什么不使用枚举呢?@StarShine:例如,传达作者的意图。首先是使用命名常量的原因。并不是说
k
特别具有描述性,而是OP的代码仅仅说明了这个问题。它的工作!谢谢这是一个例子,我试了一下,我需要做这个int k=vector.size();枚举stat_t{first=0,second,last=k};