Pertanyaan C ++ STL map :: hapus kunci yang tidak ada


Mengenai peta C ++ STL, menghapus dengan kunci: -

 size_type map::erase ( const key_type& x );

Apakah legal untuk menghapus kunci yang tidak ada? yaitu cuplikan di bawah ini ok?

map<char,int> mymap;
mymap['c']=30;
mymap.erase('c');
mymap.erase('c');
mymap.erase('D');

Tepuk tangan


32
2018-03-30 01:20


asal


Jawaban:


Ya, sebenarnya, std::map::erase() mengembalikan size_type yang menunjukkan jumlah kunci yang terhapus. Dengan demikian ia mengembalikan 0 untuk tidak ada yang terhapus dan 1 untuk sesuatu yang terhapus untuk peta.


43
2018-03-30 01:22



Ini baik-baik saja, mymap.erase ('D') akan mengembalikan 0 dalam kasus ini.

Lihat http://www.cplusplus.com/reference/stl/map/erase.html


3
2018-03-30 01:23