Mengambil Kekunci dan Nilai daripada std::map menjadi Vektor
Apabila bekerja dengan std::maps, selalunya perlu memproses sama ada kunci atau nilai secara individu. Semasa mentakrifkan functor tersuai boleh mencapai tugas ini, terdapat kaedah yang lebih cekap tersedia.
Menggunakan Iterator:
Pendekatan paling mudah ialah menggunakan std::map iterator :
std::map<int, int> m; std::vector<int> keys; std::vector<int> values; for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) { keys.push_back(it->first); values.push_back(it->second); std::cout << "Key: " << it->first << std::endl; std::cout << "Value: " << it->second << std::endl; }
Menggunakan Boost Perpustakaan:
Jika anda menggunakan perpustakaan Boost, anda boleh memanfaatkan makro BOOST_FOREACH untuk lebih mudah:
std::map<int, int> m; std::vector<int> v; BOOST_FOREACH(const std::pair<int, int>& me, m) { v.push_back(me.first); std::cout << me.first << "\n"; }
Dengan menggunakan pendekatan ini, anda boleh mengekstrak dan memproses dengan cekap kunci atau nilai daripada std::map ke dalam vektor tanpa memerlukan functors yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map ke dalam Vektor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!