如何在c ++中添加,删除enum中的值?
例:
如果我有班级学生:
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 ( );
答案 0 :(得分:4)
enum
是一组命名的整数常量,它在编译时进行评估,你无法在它们中添加或删除它们这一点。
答案 1 :(得分:3)
如果您尝试使用位掩码,则每个枚举值必须是2的幂,并且在枚举中是唯一的:
enum MyEnum { prog = 1, econ = 2, sport = 4 };
要同时选择prog
和econ
,请键入:
MyEnum v = prog | econ;
要稍后删除标记prog
,请键入:
v = v & ~prog;
您可以在the page for bitmasks on Wikipedia找到更多信息。
答案 2 :(得分:1)
枚举不可能。
一种方式可以是地图:
std::map<std::string, int> theFaculties;
theFaculties["prog"] = 1;
theFaculties["econ"] = 2;
...
int faculty = theFaculties["prog"];
您可以添加/删除,但由于创建了不存在的密钥,您必须处理运算符[]。
答案 3 :(得分:0)
枚举是一种用户定义的类型,由一组名为常量的枚举器组成。使用枚举的替代方法是使用#define
或const
。因此,您无法从枚举中删除或添加值。