Я пытаюсь написать функцию для хеширования строк в целые числа, чтобы я мог использовать строки в качестве ключей в моей хэш-карте. Мне нужно использовать псевдокод, написанный ниже, но я все еще не могу заставить его работать без ошибок. Программа должна ввести немецкое слово (как ключ) и вернуть его английский перевод (как значение).
Псевдокод:
Parameters : natural numbers i, h = 0; Field s
for i = 0 to i <length_of (s)
h = (h * 128 + s [i]) mod M;
Result : h.
Мой код:
#include "pch.h"
#include <iostream>
#include <string>
#define M 661
using namespace std;
struct entry {
string key_de, val_en;
};
int HASH(int i, int h = 0, struct entry ex_array[])
{
for (i = 0; i < sizeof(ex_array) / sizeof(ex_array[0]); i++)
{
h = (h * 128) + ex_array[i] % m;
}
return h;
}
int main()
{
}