Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan C kepada Enum dengan Cekap?

Bagaimana untuk Menukar Rentetan C kepada Enum dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-11-12 07:33:01637semak imbas

How to Convert C   Strings to Enums Efficiently?

Menukar Rentetan C kepada Enum

Dalam C , pembangun sering menghadapi keperluan untuk menterjemah rentetan kepada enum. Pendekatan naif ialah menggunakan pernyataan suis yang panjang. Walau bagaimanapun, kaedah yang lebih mudah wujud.

Satu penyelesaian ialah pemetaan menggunakan peta perpustakaan standard, yang mewujudkan kesesuaian antara rentetan dan enum. Walaupun ini boleh berkesan, ia memerlukan permulaan yang teliti.

Dengan kemunculan C 11, pendekatan yang lebih diperkemas tersedia. Menggunakan peta tidak tersusun, anda boleh membina rentetan pemetaan jadual kepada enum semasa fasa penyusunan:

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

Mendapatkan semula enum yang sepadan untuk rentetan yang diberikan kini mudah:

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

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan C kepada Enum dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn