hash_map::erase (STL/CLR)
Rimuove gli elementi alle posizioni specificate.
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
bool erase(key_type key)
Parametri
first
Inizio dell'intervallo da cancellare.chiave
Valore chiave da cancellare.last
Fine dell'intervallo da cancellare.where
Elemento da cancellare.
Note
La prima funzione membro rimuove l'elemento della sequenza controllata puntata da where e restituisce un iteratore che definisce il primo elemento che rimane oltre l'elemento rimosso o hash_map::end (STL/CLR)() se tale elemento non esiste. Viene utilizzato per rimuovere un singolo elemento.
La seconda funzione membro rimuove gli elementi della sequenza controllata nell'intervallo [first, last) e restituisce un iteratore che definisce il primo elemento che rimane oltre tutti gli elementi eliminati o end() se tale elemento non esiste. Utilizzarla per rimuovere zero o più elementi adiacenti.
La terza funzione membro elimina qualsiasi elemento della sequenza controllata la cui chiave ha ordinamento equivalente a key e restituisce un conteggio del numero di elementi rimossi. Utilizzarla per eliminare e contare tutti gli elementi che soddisfano una chiave specificata.
Ogni cancellazione di elemento richiede un tempo proporzionale al logaritmo del numero di elementi della sequenza controllata.
Esempio
// cliext_hash_map_erase.cpp
// compile with: /clr
#include <cliext/hash_map>
typedef cliext::hash_map<wchar_t, int> Myhash_map;
int main()
{
cliext::hash_map<wchar_t, int> c1;
c1.insert(cliext::hash_map<wchar_t, int>::make_value(L'a', 1));
c1.insert(cliext::hash_map<wchar_t, int>::make_value(L'b', 2));
c1.insert(cliext::hash_map<wchar_t, int>::make_value(L'c', 3));
// display contents " [a 1] [b 2] [c 3]"
for each (cliext::hash_map<wchar_t, int>::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// erase an element and reinspect
cliext::hash_map<wchar_t, int>::iterator it =
c1.erase(c1.begin());
System::Console::WriteLine("erase(begin()) = [{0} {1}]",
it->first, it->second);
// add elements and display " b c d e"
c1.insert(cliext::hash_map<wchar_t, int>::make_value(L'd', 4));
c1.insert(cliext::hash_map<wchar_t, int>::make_value(L'e', 5));
for each (cliext::hash_map<wchar_t, int>::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// erase all but end
it = c1.end();
it = c1.erase(c1.begin(), --it);
System::Console::WriteLine("erase(begin(), end()-1) = [{0} {1}]",
it->first, it->second);
System::Console::WriteLine("size() = {0}", c1.size());
// erase end
System::Console::WriteLine("erase(L'x') = {0}", c1.erase(L'x'));
System::Console::WriteLine("erase(L'e') = {0}", c1.erase(L'e'));
return (0);
}
Requisiti
Intestazione: <cliext/hash_map>
Spazio dei nomi: cliext