Pertanyaan yang diberi tag «unordered-map»

12
Apakah ada keuntungan menggunakan peta dibandingkan unordered_map jika ada kunci sepele?
Pembicaraan baru-baru ini unordered_mapdi C ++ membuat saya sadar bahwa saya harus menggunakan unordered_mapuntuk sebagian besar kasus di mana saya gunakan mapsebelumnya, karena efisiensi pencarian ( diamortisasi O (1) vs O (log n) ). Sering kali saya menggunakan peta, saya menggunakan salah satu intatau std::stringsebagai jenis kunci; karenanya, saya tidak …

2
C ++ unordered_map menggunakan tipe kelas khusus sebagai kuncinya
Saya mencoba menggunakan kelas khusus sebagai kunci untuk unordered_map, seperti berikut: #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
Bagaimana cara mengkhususkan std :: hash <Key> :: operator () untuk tipe yang ditentukan pengguna dalam wadah tak berurutan?
Untuk mendukung jenis kunci yang ditentukan pengguna std::unordered_set&lt;Key&gt;dan std::unordered_map&lt;Key, Value&gt; harus menyediakan operator==(Key, Key)dan fungsi hash: 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
Apakah std :: operator unordered_map [] melakukan inisialisasi nol untuk kunci yang tidak ada?
Menurut cppreference.com, std::map::operator[]untuk nilai yang tidak ada tidak melakukan inisialisasi nol. Namun, situs yang sama tidak menyebutkan inisialisasi nol untuk std::unordered_map::operator[], kecuali ia memang memiliki contoh yang bergantung pada ini. Tentu saja ini hanya situs referensi, bukan standar. Jadi, apakah kode di bawah ini ok atau tidak? #include &lt;unordered_map&gt; int …

1
Kebocoran memori selama unordered_map :: masukkan pengecualian KeyEqual dengan GCC - melanggar jaminan keamanan pengecualian yang kuat?
Saya menggunakan GCC 7.3.1, tetapi juga diuji pada coliru, yang saya percaya adalah versi 9.2.0. Bangun dengan yang berikut: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Inilah 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, …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.