


Bagaimanakah Anda Boleh Menukar Rentetan C dengan Cekap kepada Jenis Dikira?
Nov 25, 2024 am 11:28 AMMerapatkan Jurang: Menukar Rentetan C kepada Jenis Terbilang
Dalam C , menukar rentetan kepada jenis terhitung (enum) memberikan cabaran yang boleh diselesaikan menggunakan pelbagai teknik. Walaupun pernyataan suis mungkin kelihatan seperti penyelesaian yang mudah, panjangnya boleh menjadi sukar digunakan. Artikel ini meneroka pendekatan alternatif untuk memudahkan penukaran rentetan kepada enum.
Satu kaedah melibatkan penggunaan pemetaan antara rentetan dan enum yang sepadan. Peta standard atau unordered_map boleh digunakan untuk tujuan ini, dengan rentetan sebagai kunci dan enum sebagai nilai. Mengisi peta, walau bagaimanapun, boleh membosankan seperti membuat pernyataan suis.
C 11 to the Rescue
Dengan kemunculan C 11, mengisi peta dengan pasangan rentetan-enum menjadi lebih mudah. Coretan kod berikut menunjukkan kesederhanaan ini:
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() }
Dalam kod ini, pembolehubah jadual mengandungi peta statik yang mengaitkan rentetan dengan enum. Apabila str rentetan yang diberikan dicari dalam peta, nilai enum yang sepadan dikembalikan jika ditemui, atau ralat dilaporkan sebaliknya.
Kesimpulan
Semasa menggunakan peta untuk menukar rentetan kepada enum menawarkan kemudahan, adalah penting untuk ambil perhatian bahawa mengisi peta boleh menjadi lebih kompleks daripada membuat pernyataan suis. Walau bagaimanapun, dengan sintaks C 11 yang dipermudahkan, mengisi peta menjadi tugas yang lebih mudah.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menukar Rentetan C dengan Cekap kepada Jenis Dikira?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Gulc: Perpustakaan C dibina dari awal

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?
