Cách sử dụng template để xử lý dữ liệu chưa biết kiểu?
Hiện em đang làm bài tập về bảng băm và cần sử dụng template trong C++ để có thể thực hiện được hàm băm. Ở điều kiện đầu vào có một tham số chưa xác định kiểu, có thể là chuỗi hoặc cũng có thể là số.
Đây là đề bài cụ thể:
Sử dụng hàm băm D.knuth có dạng là m*((k*a)mod 1) : trong đó m là số slot của bảng băm, k là khóa, a là 1 hằng số.
Trong đó khóa k chưa xác định, có thể là chuỗi hoặc số, hoặc kiểu dữ liệu khác
Em bị vướng ở chỗ, khi khóa có kiểu dữ liệu chưa xác đinh. thì làm sao để viết được hàm băm?
Code của em đang viết ở đây:
Em đưa thông tin cụ thể hơn đi, anh học bảng băm chắc cũng 5-6 năm rồi, giờ chả nhớ gì đâu…
dạ ! đây là bài tập về nhà môn cấu trúc dữ liệu của em. thầy yêu cầu là sử dụng hàm băm D.knuth
có dạng là m*((k*a)mod 1) : trong đó m là số slot của bảng băm, k là khóa, a là 1 hằng số .
vấn đề của em năm ở chỗ : khi xây dựng template của bảng băm (hashtable) kiểu dữ liệu của khóa k là chưa xác định (có thể là số , hoặc chuỗi , …) thì em không biết phải viết hàm băm như thế nào từ 1 kiểu dữ liệu chưa xác định của khóa để có thể return lại được vị trí trên hashtable .
Có phải là số phần từ của bảng băm không? Anh học lâu quên.
Khóa này là số hay là chuỗi?
Cho anh coi thử cái template như thế nào.
À anh hiểu rồi.
Trước hết em xem gửi code em làm lên. Em có thể xem qua mẫu template ở đây.
chú cương dạo này có cố gắng lắm
Em đọc lướt qua phần bảng băm xong thấy hiểu là quên luôn chứ đừng nói là 5 năm
Á à, @minh_vu_03 muốn đi theo thuật toán / giải thuật thì phải nhớ chứ không được quên đâu nhé. Anh quên là anh quên thuật ngữ “việt hóa” thôi chứ còn bản chất thì vẫn nhớ nhé. :trollface:
Bảng băm dễ hiểu mà, khi nào quên thì coi cuốn từ điển nó như thế nào thì bảng băm nó như thế ấy thôi.