«unordered-map» etiketlenmiş sorular

12
Önemsiz anahtarlarda haritayı unordered_map üzerinde kullanmanın herhangi bir avantajı var mı?
unordered_mapC ++ ile ilgili son bir konuşma , aramanın etkinliği nedeniyle daha önce unordered_mapkullandığım çoğu durumda kullanmam gerektiğini anlamamı sağladı map( amortisör O (1) ve O (log n) ). Çoğu zaman bir harita kullanıyorum ya intda std::stringanahtar türü olarak kullanıyorum; bu nedenle, hash fonksiyonunun tanımı ile ilgili bir sorunum yok. …

2
Anahtar olarak özel bir sınıf türü kullanan C ++ unordered_map
unordered_mapAşağıdaki gibi bir için anahtar olarak özel bir sınıf kullanmaya çalışıyorum : #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; class node; class Solution; class Node { public: int a; int b; int c; Node(){} Node(vector<int> v) { sort(v.begin(), v.end()); a = v[0]; b = v[1]; c = v[2]; …

3
Sırasız kapsayıcılarda kullanıcı tanımlı tür için std :: hash <Key> :: operator () nasıl uzmanlaşır?
Kullanıcı tanımlı anahtar türlerini desteklemek std::unordered_set&lt;Key&gt;ve std::unordered_map&lt;Key, Value&gt; bir sağlamak zorundadır operator==(Key, Key)ve bir karma funktoru: 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); } }; std::unordered_set&lt;X, …

2
Std :: unordered_map operatörü [] mevcut olmayan anahtar için sıfır başlatma yapıyor mu?
Cppreference.com'a göre, varolmayan std::map::operator[]değer sıfır başlatma yapar. Bununla birlikte, aynı site buna sıfır sıfırlamadan bahsetmez std::unordered_map::operator[], ancak buna dayanan bir örnek yoktur. Tabii ki bu sadece bir referans sitesi, standart değil. Peki, aşağıdaki kod tamam mı değil mi? #include &lt;unordered_map&gt; int main() { std::unordered_map&lt;int, int&gt; map; return map[42]; // is …

1
Unordered_map :: sırasında bellek sızıntısı
GCC 7.3.1 kullanıyorum, ancak 9.2.0 sürümü olduğuna inandığım coliru üzerinde de test yaptım. Aşağıdakilerle derleyin: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp İşte 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, std::hash&lt;std::string&gt;, MyComp&gt; mymap; mymap.insert(std::make_pair("Hello", …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.