Heim > Backend-Entwicklung > C++ > Wie konvertiert man C-Strings effizient in Enums?

Wie konvertiert man C-Strings effizient in Enums?

Linda Hamilton
Freigeben: 2024-11-12 07:33:01
Original
701 Leute haben es durchsucht

How to Convert C   Strings to Enums Efficiently?

Konvertieren von C-Strings in Enums

In C stoßen Entwickler häufig auf die Notwendigkeit, Strings in Enums zu übersetzen. Ein naiver Ansatz wäre die Verwendung einer langen switch-Anweisung. Es gibt jedoch bequemere Methoden.

Eine Lösung ist eine Zuordnung mithilfe einer Standardbibliothekszuordnung, die eine Entsprechung zwischen Zeichenfolgen und Aufzählungen herstellt. Dies kann zwar effektiv sein, erfordert jedoch eine sorgfältige Initialisierung.

Mit der Einführung von C 11 ist ein optimierterer Ansatz verfügbar. Mithilfe einer ungeordneten Zuordnung können Sie während der Kompilierungsphase eine Tabelle erstellen, die Zeichenfolgen Aufzählungen zuordnet:

static std::unordered_map<std::string,E> const table = { {"a",E::a}, {"b",E::b} };
Nach dem Login kopieren

Das Abrufen der entsprechenden Aufzählung für eine bestimmte Zeichenfolge ist jetzt unkompliziert:

auto it = table.find(str);
if (it != table.end()) {
  return it->second;
} else {
  // Handle error
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiert man C-Strings effizient in Enums?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage