Rumah >pembangunan bahagian belakang >C++ >Bekas Perpustakaan Standard C 11 manakah yang Harus Saya Pilih?

Bekas Perpustakaan Standard C 11 manakah yang Harus Saya Pilih?

DDD
DDDasal
2024-12-15 01:18:13760semak imbas

Which C  11 Standard Library Container Should I Choose?

Memilih Bekas Perpustakaan Standard C 11: Panduan Komprehensif

Memilih bekas yang sesuai dalam C 11 adalah penting untuk pengurusan data yang cekap. Tidak seperti helaian tipu "C Container choice" yang terkenal, versi C 11 masih belum dibuat.

Walau bagaimanapun, mencipta carta sedemikian boleh dipermudahkan dengan mematuhi dua prinsip: mengutamakan semantik dan memilih untuk penyelesaian paling mudah apabila wujud berbilang pilihan. Pertimbangan prestasi harus ditangani hanya apabila mengendalikan set data yang besar.

Jujukan Bersekutu lwn. Ringkas

Bekas dikategorikan kepada dua jenis utama: jujukan bersekutu dan ringkas.

Berpersatuan Bekas

Gunakan bekas bersekutu untuk:

  • Cari mudah dengan satu kekunci
  • Elemen diisih (bekas bersekutu tersusun)

Jujukan Mudah Bekas

Gunakan bekas jujukan mudah apabila:

  • Tertib elemen tidak relevan
  • Kestabilan memori (lokasi memori tetap) diperlukan

Pemilihan Langkah demi Langkah Proses

Untuk Bekas Bersekutu

  • Dipesan?

    • Ya: Gunakan std::map atau std::set (berdasarkan key-value pemisahan)
    • Tidak: Gunakan std::unordered_map or std::unordered_set
  • Pendua?

    • Ya: Gunakan std::multimap atau std::multiset
    • Tidak: Gunakan std::map atau std::set

Untuk Bekas Jujukan Mudah

  • Memori stabil?

    • Ya: Gunakan std::list
  • Bersaiz dinamik?

    • Saiz yang diketahui pada masa penyusunan?: Gunakan std::array
    • Saiz tidak diketahui?: Teruskan
  • Double-ended?

    • Ya : Gunakan std::deque
    • Tidak: Gunakan std::vector

Pilihan Lalai

Dalam kebanyakan kes, melainkan keperluan bersekutu atau khusus wujud, std::vector ialah pilihan pilihan (seperti yang disyorkan oleh Sutter dan Stroustrup).

Atas ialah kandungan terperinci Bekas Perpustakaan Standard C 11 manakah yang Harus Saya Pilih?. 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