Rumah > pembangunan bahagian belakang > C++ > Adakah Terdapat Cara yang Lebih Cekap untuk Mengemas kini Elemen dalam std::set?

Adakah Terdapat Cara yang Lebih Cekap untuk Mengemas kini Elemen dalam std::set?

Mary-Kate Olsen
Lepaskan: 2024-12-18 15:49:10
asal
504 orang telah melayarinya

Is There a More Efficient Way to Update Elements in a std::set?

Kemas kini Operasi dalam std::set: Menangani Kebosanan

Soalan:

Operasi kemas kini dalam std:: set kelihatan menyusahkan kerana kekurangan API pengubahsuaian di tempat. Pada masa ini, pengguna terpaksa mencari elemen, menyalinnya, mengemas kini nilainya, memadamkan yang asal dan memasukkan semula salinan yang dikemas kini. Adakah terdapat pendekatan yang lebih cekap atau patutkah std::set ditindih dengan pelaksanaan tersuai?

Jawapan:

std::set menggunakan const iterator untuk mengekalkannya alam yang diperintahkan. Membenarkan iterator biasa akan membolehkan menukar nilai item dan berpotensi mengganggu pesanan.

Oleh itu, kaedah idiomatik untuk mengemas kini item dalam set adalah yang anda nyatakan:

  1. Dapatkan semula elemen menggunakan a const iterator
  2. Salin elemen
  3. Kemas kini elemen yang disalin value
  4. Padam elemen asal menggunakan const iterator
  5. Masukkan semula salinan yang dikemas kini

Menyesuaikan std::set dengan mencipta pelaksanaan anda sendiri tidak diperlukan kerana pendekatan semasa dianggap sebagai cara standard untuk melakukan kemas kini dalam bekas ini.

Atas ialah kandungan terperinci Adakah Terdapat Cara yang Lebih Cekap untuk Mengemas kini Elemen dalam std::set?. 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