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

Bagaimana Mengeluarkan Kunci dan Nilai dengan Cekap daripada std::map ke dalam Vektor?

Mary-Kate Olsen
Lepaskan: 2024-11-30 11:16:11
asal
521 orang telah melayarinya

How to Efficiently Extract Keys and Values from a std::map into a Vector?

Mengambil Kekunci dan Nilai daripada std::map ke dalam Vektor

Mendapatkan kunci atau nilai daripada std::map dan menyimpannya dalam vektor ialah operasi biasa. Walaupun terdapat pelbagai kaedah untuk mencapai matlamat ini, dua pendekatan yang digunakan secara meluas diserlahkan di bawah:

Menggunakan Fungsi Tersuai:

Satu teknik melibatkan mencipta functor tersuai yang mengubah nilai kunci berpasangan ke dalam jenis yang dikehendaki. Sebagai contoh, untuk mendapatkan semula kunci:

struct RetrieveKey {
    template <typename T>
    typename T::first_type operator()(T keyValuePair) const {
        return keyValuePair.first;
    }
};
Salin selepas log masuk

Fungsi ini boleh digunakan dengan algoritma transformasi untuk lelaran ke atas peta dan mengekstrak kunci.

Menggunakan Iterator:

Pendekatan yang lebih mudah melibatkan penggunaan iterator untuk menggelung melalui peta dan mengakses terus kekunci atau nilai. Kaedah ini memberikan lebih fleksibiliti dan kawalan ke atas operasi:

for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) {
  keys.push_back(it->first);
  values.push_back(it->second);
}
Salin selepas log masuk

Pilihan Perpustakaan Boost:

Jika menggunakan perpustakaan Boost ialah pilihan, makro BOOST_FOREACH menawarkan sintaks ringkas dan boleh dibaca untuk lelaran:

BOOST_FOREACH(pair<int, int> p, m) {
  v.push_back(p.first);
}
Salin selepas log masuk

Pilihan pendekatan akhirnya bergantung pada keperluan khusus dan keutamaan pembangun. Pendekatan functor menyediakan serba boleh dan membolehkan pengendalian kunci dan nilai yang berasingan. Iterator menawarkan akses langsung dan mudah kepada data. Pilihan perpustakaan Boost memudahkan lelaran dengan sintaks ringkasnya.

Atas ialah kandungan terperinci Bagaimana 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