Domande taggate «unordered-map»



3
Come specializzare std :: hash <Key> :: operator () per il tipo definito dall'utente in contenitori non ordinati?
Per supportare i tipi di chiave definiti dall'utente in std::unordered_set&lt;Key&gt;e std::unordered_map&lt;Key, Value&gt; si deve fornire operator==(Key, Key)un hash funtore: struct X { int id; /* ... */ }; bool operator==(X a, X b) { return a.id == b.id; } struct MyHash { size_t operator()(const X&amp; x) const { return std::hash&lt;int&gt;()(x.id); …

2
L'operatore std :: unordered_map [] esegue l'inizializzazione zero per chiave non esistente?
Secondo cppreference.com, std::map::operator[]per il valore inesistente non viene inizializzata zero. Tuttavia, lo stesso sito non menziona l'inizializzazione zero per std::unordered_map::operator[], tranne che ha un esempio che si basa su questo. Naturalmente questo è solo un sito di riferimento, non lo standard. Quindi, il codice qui sotto è ok o no? …

1
Perdita di memoria durante unordered_map :: insert Eccezione KeyEqual con GCC - rompendo la forte garanzia di sicurezza delle eccezioni?
Sto usando GCC 7.3.1, ma anche testato su coliru, che credo sia la versione 9.2.0. Costruire con il seguente: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Ecco rai.cpp: #include &lt;iostream&gt; #include &lt;unordered_map&gt; int main() { try { struct MyComp { bool operator()(const std::string&amp;, const std::string&amp;) const { throw std::runtime_error("Nonono"); } }; std::unordered_map&lt;std::string, std::string, …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.