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
in C++ は名前付き整数定数のセットであり、コンパイル時に評価され、そのように値を追加または削除することはできません。
ビットマスクを使用しようとしている場合、各列挙値は2の累乗であり、列挙内で一意である必要があります。
enum MyEnum { prog = 1, econ = 2, sport = 4 };
prog
との両方を選択するにはecon
、次のように入力します。
MyEnum v = prog | econ;
後でフラグを削除するには、次のprog
ように入力します。
v = v & ~prog;
これは列挙型では不可能です。
ウェイは地図かもしれません:
std::map<std::string, int> theFaculties;
theFaculties["prog"] = 1;
theFaculties["econ"] = 2;
...
int faculty = theFaculties["prog"];
追加/削除できますが、存在しないキーを作成するため、operator[] に注意する必要があります。
列挙型は、列挙型と呼ばれる名前付き定数のセットで構成されるユーザー定義型です。列挙型を使用する代わりに、#define
またはを使用することもできconst
ます。したがって、列挙型から値を削除または追加することはできません。