Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map?
Cara Mendapatkan Kekunci dan Nilai dengan Mudah daripada std::map
Pendekatan anda menggunakan functors dan algoritma standard adalah berfungsi dan menunjukkan fleksibiliti. Walau bagaimanapun, untuk tujuan kebolehbacaan dan penyelenggaraan, anda mungkin mempertimbangkan penyelesaian alternatif ini.
Memvektorkan dengan Iterator
Untuk mendapatkan kunci ke dalam vektor, pertimbangkan perkara berikut:
std::map<int, int> m; std::vector<int> keys, values; for (auto& [key, value] : m) { keys.push_back(key); values.push_back(value); }
Mengeksploitasi Boost Iterator
Jika anda bekerja dengan Boost, manfaatkan iteratornya yang berkuasa untuk pendekatan yang lebih bersih:
boost::map<int, int> m; std::vector<int> keys; for (boost::tie(it, ignore) = boost::begin(m); it != boost::end(m); ++it) { keys.push_back(*it); }
Pemurnian Lanjut
Soalan anda menyatakan bahawa std::map tidak mempunyai fungsi ahli khusus untuk mendapatkan kunci atau nilai. Ini mungkin disebabkan oleh pertimbangan prestasi, kerana operasi ini melibatkan struktur data asas yang mungkin kompleks.
Akhirnya, pilihan antara pendekatan ini bergantung pada konteks dan pilihan khusus anda. Setiap kaedah mempunyai kelebihan dan kebimbangan kebolehbacaan.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!