30/09/2018, 16:46
So sánh hash table vs hash map?
Mình đang học c++, nhờ mọi người trả lời giúp với. Là sự khác nhau giữa hashtable và hashmap là gì? Bản chất? Cách sử dụng,…
Bài liên quan
Mình đang học c++, nhờ mọi người trả lời giúp với. Là sự khác nhau giữa hashtable và hashmap là gì? Bản chất? Cách sử dụng,…
Hải Huy cho thêm thông tin về hai cái này không? Đạt biết std có hỗ trợ hashmap, tức là unordered_map
http://en.cppreference.com/w/cpp/container/unordered_map
Còn hashtable thì không rõ.
Nếu em nói tới cái này thì hai cái này là một.
hash table
là định nghĩa trong ngành của mình nói về việc em có một key, thì sẽ có một value match với nó.Ví dụ:
Vấn đề là làm sao để lưu được cặp giá trị này, người ta mới băm cái key x ra một con số, và lưu trữ giá trị y với index = con số đó. Có thể tưởng tượng như vậy.
Hash table
là cách lưu các cặp giá trị này.Về
hash map
mà nói thì trongstd
không cóhash map
. Mà ta có thể coiunordered_map
là tương đương vớihash map
. Tham khảo: http://stackoverflow.com/a/5908859/1989112Về bản chất,
unordered_map
làmap
mà không có sắp xếp. Mọi phần tử nhập vào là nó hash hết, không sắp xếp.unoredered_map
ra đời saumap
, trong khimap
cũng làhash table
nhưng có hỗ trợ sắp xếp.Cái em cần quan tâm không phải là sự khác nhau. Mà em cần biết,
hash table
là gì,hash
là gì. Cái này gọi là kỹ thuậthash
.Phần phụ:
Còn
map
là thuật ngữ chỉ phương thức hoạt động của một container. Hiểu container như cách quản lý dữ liệu đi, đừng đi sâu vào thời điểm này. Khi ta có cặp key - value ta gọi là pair, khi có nhiều pair cần quản lý, ta dùng map hoặc unordered_map để quản lý. Giống như khi ta có kiểu int, và cần quản lý nhiều int ta có mảng.