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
408 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!

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