std::Peta dengan Susunan Sisipan
Menjejaki susunan sisipan dalam std::map adalah penting apabila susunan unsur penting . Walaupun std::map terutamanya mengisih elemen berdasarkan nilai utama, terdapat dua penyelesaian berpotensi untuk menangani keperluan anda:
Penyelesaian 1: Menggunakan std::Vector
Walaupun anda menyebut kebimbangan tentang prestasi apabila menggunakan std::vector disebabkan oleh carian dan kenaikan yang kerap, std::vector ditambah dengan pembanding tersuai boleh mengekalkan susunan sisipan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pendekatan ini sememangnya boleh memperkenalkan kelemahan prestasi jika bilangan elemen meningkat dengan ketara.
Penyelesaian 2: Boost::Multi-Index
Untuk senario khusus anda dengan bilangan (50) elemen yang terhad, perpustakaan berbilang indeks Boost menyediakan penyelesaian yang mantap. Ia membolehkan penciptaan bekas dengan berbilang indeks. Dalam kes anda, coretan kod berikut menunjukkan cara mentakrifkan bekas berbilang indeks yang menjejaki kedua-dua tertib sisipan dan pengecam rentetan unik:
struct value_t { string s; int i; }; struct string_tag {}; typedef multi_index_container< value_t, indexed_by< random_access<>, // this index represents insertion order hashed_unique<tag<string_tag>, member<value_t, string, &value_t::s>> > > values_t;
Bekas berbilang indeks ini membolehkan carian cekap berdasarkan pengecam rentetan sementara mengekalkan susunan sisipan melalui indeks "random_access".
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Susunan Sisipan dalam std::map, Terutamanya dengan Bilangan Elemen Terhad?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!