如何在 C++ 中从枚举中添加、删除值?
示例:如果我有班级学生:
class Student {
string Name;
string fathername;
string sername;
unsigned int id-std;
unsigned int old;
int faculty = 0;
enum { prog , econ , sport };
add fac( );
delete fac ( );
enum
在 C++ 中是一组命名的整数常量,它在编译时被评估,你不能像那样添加或删除它们的值。
如果您尝试使用位掩码,则每个枚举值必须是 2 的幂,并且在枚举中是唯一的:
enum MyEnum { prog = 1, econ = 2, sport = 4 };
要同时选择prog
和econ
,请键入:
MyEnum v = prog | econ;
要稍后删除标志prog
,请键入:
v = v & ~prog;
您可以在 Wikipedia 上的位掩码页面上找到更多信息。
这对于枚举是不可能的。
一种方式可能是地图:
std::map<std::string, int> theFaculties;
theFaculties["prog"] = 1;
theFaculties["econ"] = 2;
...
int faculty = theFaculties["prog"];
您可以添加/删除,但您必须照顾 operator[] 因为创建不存在的密钥。
枚举是一种用户定义的类型,由一组称为枚举数的命名常量组成。使用枚举的替代方法是使用#define
or const
。因此,您不能从枚举中删除或添加值。