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 .

1 Like

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

1 Like

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 :smiley:

1 Like

Á à, @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:

1 Like

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.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?