Gibt es eine Möglichkeit, die maximal und minimal definierten Werte einer Aufzählung in c ++ zu finden?
Gibt es eine Möglichkeit, die maximal und minimal definierten Werte einer Aufzählung in c ++ zu finden?
Antworten:
Nein, es gibt keine Möglichkeit, die maximal und minimal definierten Werte einer Aufzählung in C ++ zu finden. Wenn diese Art von Informationen benötigt wird, empfiehlt es sich häufig, einen letzten und einen ersten Wert zu definieren. Zum Beispiel,
enum MyPretendEnum
{
Apples,
Oranges,
Pears,
Bananas,
First = Apples,
Last = Bananas
};
Es müssen nicht für jeden Wert zwischen First
und benannte Werte angegeben werden Last
.
Nein, nicht in Standard C ++. Sie können es manuell tun:
enum Name
{
val0,
val1,
val2,
num_values
};
num_values
enthält die Anzahl der Werte in der Aufzählung.
num_values
die Anzahl der Werte in der Aufzählung, außer sich num_values
selbst.
Nein. Eine Aufzählung in C oder C ++ ist einfach eine Liste von Konstanten. Es gibt keine höhere Struktur, die solche Informationen enthalten würde.
Wenn ich diese Art von Informationen benötige, füge ich normalerweise einen Max- und Min-Wert wie folgt in die Aufzählung ein:
enum {
eAaa = 1,
eBbb,
eCccc,
eMin = eAaaa,
eMax = eCccc
}
Auf dieser Webseite finden Sie einige Beispiele, wie dies nützlich sein kann: Dumme Aufzählungstricks
Nicht automatisch, aber Sie können künstliche Aufzählungswerte hinzufügen, um Min- und Max-Werte zu kennzeichnen, z
typedef enum {start_of_colors=-1, eRed, eWhite, eBlue, eGray,
end_of_colors} eListOfTags;
for (eListOfTags i = start_of_colors+1; i < end_of_colors; i++) {
....
}
du brauchst sie nicht einmal, was ich tue, ist nur, dass ich zum Beispiel sage, wenn du hast:
enum Name{val0,val1,val2};
Wenn Sie eine switch-Anweisung haben und prüfen möchten, ob der letzte Wert erreicht wurde, gehen Sie wie folgt vor:
if(selectedOption>=val0 && selectedOption<=val2){
//code
}