Heim > Backend-Entwicklung > C++ > Wie können Sie C-Strings effizient in Aufzählungstypen konvertieren?

Wie können Sie C-Strings effizient in Aufzählungstypen konvertieren?

Mary-Kate Olsen
Freigeben: 2024-11-25 11:28:24
Original
480 Leute haben es durchsucht

How Can You Efficiently Convert C   Strings to Enumerated Types?

Überbrückung der Kluft: Konvertieren von C-Strings in Aufzählungstypen

In C stellt das Konvertieren von Strings in Aufzählungstypen (Enums) eine Herausforderung dar mit verschiedenen Techniken gelöst werden. Auch wenn eine Switch-Anweisung wie eine einfache Lösung erscheint, kann ihre Länge unhandlich werden. In diesem Artikel werden alternative Ansätze zur Vereinfachung der String-zu-Enum-Konvertierung untersucht.

Eine Methode beinhaltet die Verwendung einer Zuordnung zwischen Strings und ihren entsprechenden Enums. Zu diesem Zweck kann eine Standard-Map oder unordered_map verwendet werden, mit den Strings als Schlüssel und den Enums als Werten. Das Auffüllen der Karte kann jedoch genauso mühsam sein wie das Erstellen einer Switch-Anweisung.

C 11 zur Rettung

Mit der Einführung von C 11 ist das Auffüllen einer Karte mit String-Enum-Paare werden deutlich einfacher. Der folgende Codeausschnitt demonstriert diese Einfachheit:

static std::unordered_map<std::string, E> const table = {{"a",E::a}, {"b",E::b}};
auto it = table.find(str);
if (it != table.end()) {
  return it->second;
} else { error() }
Nach dem Login kopieren

In diesem Code enthält die Tabellenvariable eine statische Zuordnung, die Zeichenfolgen mit Aufzählungen verknüpft. Wenn die angegebene Zeichenfolge str in der Karte gesucht wird, wird der entsprechende Enum-Wert zurückgegeben, falls gefunden, andernfalls wird ein Fehler gemeldet.

Schlussfolgerung

Bei Verwendung einer Karte Da die Konvertierung von Zeichenfolgen in Aufzählungen praktischer ist, ist es wichtig zu beachten, dass das Auffüllen der Karte komplexer sein kann als das Erstellen einer Switch-Anweisung. Mit der vereinfachten Syntax von C 11 wird das Auffüllen der Karte jedoch zu einer viel einfacheren Aufgabe.

Das obige ist der detaillierte Inhalt vonWie können Sie C-Strings effizient in Aufzählungstypen konvertieren?. 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