Bagaimana untuk menjadikan pernyataan suis dalam C++ lebih cekap?

May 21, 2026

Tinggalkan pesanan

Michael Brown
Michael Brown
Michael ialah seorang veteran jualan di Ningbo Liming Relay Company Limited. Sejak syarikat itu memasuki pasaran luar negara pada tahun 2004, beliau bertanggungjawab untuk jualan di luar negara dan telah mewujudkan rangkaian pelanggan yang meluas di seluruh dunia.

Hey! Saya seorang peniaga suis, menawarkan pelbagai pilihan berkualiti tinggi sepertiSuis Kuasa Am Automotif,Suis Roker Miniatur, danSuis Pengayun Bot. Hari ini, saya ingin berbual tentang cara membuat pernyataan suis dalam C++ lebih cekap.

Sekarang, jika anda berminat dalam pengaturcaraan, anda tahu bahawa pernyataan suis sangat berguna. Ia digunakan untuk memilih salah satu daripada banyak blok kod untuk dilaksanakan, seperti jalan berbilang hala di mana anda memilih laluan yang betul berdasarkan syarat tertentu. Tetapi inilah perkaranya: kadangkala, mereka boleh menjadi agak perlahan, terutamanya apabila terdapat sejumlah besar kes. Jadi, mari kita gali beberapa cara untuk mempercepatkannya.

1. Kurangkan Bilangan Perbandingan

Idea asas di sebalik pernyataan suis adalah untuk membandingkan nilai dengan sekumpulan pemalar. Apabila anda mempunyai senarai panjang kes, pengkompil perlu melakukan satu tan perbandingan. Satu penyelesaian mudah ialah mengumpulkan kes yang serupa.

#include <iostream> int main() { int day = 3; suis (hari) { kes 1: kes 2: kes 3: std::cout << "Ini hari bekerja" << std::endl; pecah; kes 6: kes 7: std::cout << "Ini hujung minggu" << std::endl; pecah; lalai: std::cout << "Hari tidak sah" << std::endl; } kembali 0; }

Dalam contoh ini, daripada mempunyai penyata output yang berasingan untuk setiap hari bekerja dan hari hujung minggu, kami mengumpulkannya bersama-sama. Dengan cara ini, bilangan kes yang berbeza dikurangkan dan pengkompil tidak perlu melakukan banyak perbandingan.

2. Gunakan Jadual Carian

Untuk penyataan suis dengan bilangan kes berturut-turut yang banyak, jadual carian boleh menjadi pengubah permainan. Jadual carian ialah tatasusunan di mana indeks sepadan dengan nilai dalam pernyataan suis, dan elemen tatasusunan memegang hasil atau tindakan yang akan diambil.

#include <iostream> const int numCases = 10; void action1() { std::cout << "Tindakan 1" << std::endl; } void action2() { std::cout << "Tindakan 2" << std::endl; } //... fungsi tindakan lain batal (*actionTable[numCases])() = {action1, action2, /*... other actions */}; int main() { int input = 2; if (input >= 0 && input < numCases) { actionTable[input](); } else { std::cout << "Input tidak sah" << std::endl; } kembali 0; }

Di sini, bukannya pernyataan suis, kami mempunyai pelbagai penunjuk fungsi. Kami hanya mengakses tatasusunan menggunakan nilai input dan memanggil fungsi yang sepadan. Ini adalah lebih pantas kerana mengakses elemen tatasusunan ialah operasi masa tetap, manakala pernyataan suis mungkin memerlukan berbilang perbandingan.

3. Susun Kes Anda Secara Strategik

Susunan kes dalam pernyataan suis penting. Jika anda tahu bahawa kes tertentu lebih berkemungkinan berlaku berbanding yang lain, letakkannya pada permulaan pernyataan suis.

#include <iostream> int main() { int userChoice; // Andaikan kebanyakan pengguna memilih pilihan 1 std::cout << "Masukkan pilihan anda (1, 2, 3): "; std::cin >> userChoice; suis (userChoice) { kes 1: std::cout << "Anda telah memilih pilihan yang paling popular" << std::endl; pecah; kes 2: std::cout << "Anda memilih pilihan 2" << std::endl; pecah; kes 3: std::cout << "Anda memilih pilihan 3" << std::endl; pecah; lalai: std::cout << "Pilihan tidak sah" << std::endl; } kembali 0; }

Dengan meletakkan kes yang paling berkemungkinan dahulu, pengkompil akan mencapainya dengan lebih cepat, mengurangkan masa pelaksanaan keseluruhan.

4. Pertimbangkan Menggunakan Enum

Jika anda menggunakan nilai integer dalam pernyataan suis anda, pertimbangkan untuk menggunakan aenumsebaliknya. Anenum(penghitungan) ialah jenis data yang ditakrifkan pengguna yang terdiri daripada satu set pemalar bernama.

#include <iostream> enum Warna { MERAH, HIJAU, BIRU }; int main() { Warna myColor = HIJAU; suis (myColor) { case RED: std::cout << "Warnanya merah" << std::endl; pecah; case HIJAU: std::cout << "Warna hijau" << std::endl; pecah; case BLUE: std::cout << "Warnanya biru" << std::endl; pecah; lalai: std::cout << "Warna tidak sah" << std::endl; } kembali 0; }

Menggunakan anenummenjadikan kod anda lebih mudah dibaca dan diselenggara. Pengkompil juga boleh mengoptimumkan pernyataan suis dengan lebih baik kerana ia mengetahui kemungkinan nilai terhad kepadaenumahli.

5. Profil dan Optimumkan

Akhir sekali, jangan lupa untuk memprofilkan kod anda. Alat pemprofilan boleh membantu anda mengenal pasti bahagian penyataan suis anda yang paling banyak mengambil masa. Sebaik sahaja anda mengetahui di mana kesesakan itu, anda boleh menggunakan teknik pengoptimuman yang sesuai.

Terdapat pelbagai alat pemprofilan yang tersedia untuk C++, seperti gprof dalam persekitaran Linux. Dengan menjalankan program anda dengan profiler, anda boleh melihat berapa kali setiap kes dalam pernyataan suis dilaksanakan dan berapa lama masa yang diperlukan.

Secara keseluruhannya, membuat pernyataan suis dalam C++ lebih cekap adalah tentang menjadi pintar dengan kod anda. Sama ada mengurangkan perbandingan, menggunakan jadual carian, memesan kes dengan bijak atau memanfaatkan enum, setiap teknik boleh menyumbang kepada peningkatan kelajuan yang ketara.

Automotive General Power Switch bestMiniature Roker Switch best

Jika anda berada di pasaran untuk suis berkualiti tinggi untuk projek automotif, marin atau lain-lain anda, jangan teragak-agak untuk menghubungi rundingan pembelian. Saya di sini untuk menawarkan anda suis terkemuka pada harga yang kompetitif.

Rujukan:

  • "Bahasa Pengaturcaraan C++" oleh Bjarne Stroustrup
  • Dokumentasi dan tutorial C++ dalam talian
Hantar pertanyaan