Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map ke dalam Vektor?

Bagaimanakah Saya Boleh Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map ke dalam Vektor?

Patricia Arquette
Lepaskan: 2024-12-11 02:31:10
asal
283 orang telah melayarinya

How Can I Efficiently Extract Keys and Values from a std::map into Vectors?

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;
}
Salin selepas log masuk

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";
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan