Rumah > pembangunan bahagian belakang > C++ > Adakah Susunan Lelaran dalam `std::map` Dijamin oleh Piawaian?

Adakah Susunan Lelaran dalam `std::map` Dijamin oleh Piawaian?

Patricia Arquette
Lepaskan: 2024-11-08 08:32:01
asal
266 orang telah melayarinya

Is the Order of Iteration in `std::map` Guaranteed by the Standard?

Tempahan Berulang dalam std::map: Standard Dijamin atau Tidak?

Dalam std::map, elemen diisih berdasarkan kekuncinya . Walau bagaimanapun, adakah piawaian menentukan susunan unsur-unsur ini diulang? Soalan ini timbul apabila lelaran dari begin() hingga end(), terutamanya untuk peta berkunci integer.

Jaminan Standard

Ya, susunan lelaran dari mula () hingga end() dijamin oleh standard. Ini bermakna untuk peta berkunci integer, lelaran melalui elemen akan mengeluarkan nilai yang dikaitkan dengan kunci tersebut dalam tertib menaik.

Pelaksanaan Dalaman

Secara dalaman, std: :map menggunakan pepohon carian binari yang seimbang untuk carian dan penyisipan yang cekap. Elemen disimpan dalam cara yang mengekalkan susunan yang diisih ini. Apabila melelaran melalui pepohon, nod dilawati sedemikian rupa sehingga traversal tertib menghasilkan elemen dalam tertib diisih.

Menentukan Susunan

Fungsi perbandingan lalai yang digunakan dalam std::map ialah std::less, yang menentukan susunan sebagai semakin meningkat. Ini bermakna untuk kekunci integer, elemen akan diisih dalam tertib menaik.

Contoh

Pertimbangkan coretan kod yang disediakan:

<code class="cpp">std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for (std::map<int, int>::iterator iter = map_.begin();
     iter != map_.end();
     ++iter)
{
    std::cout << iter->second;
}</code>
Salin selepas log masuk

Jaminan Output:

Piawaian menjamin bahawa kod di atas akan mengeluarkan "234" kerana elemen akan diulang dalam tertib menaik kekuncinya. Tingkah laku pesanan ini penting untuk mencari dan mengekalkan sifat disusun struktur data peta yang cekap.

Atas ialah kandungan terperinci Adakah Susunan Lelaran dalam `std::map` Dijamin oleh Piawaian?. 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