Я решаю проблему, часть которой требует от меня преобразования массива в хеш-таблицу, но массив может содержать дубликаты.Как создать хэш из массива с повторяющимися значениями
Теперь, если бы не было дубликатов я мог бы просто сделать: -
unordered_map<int,int>hash;
for(int i=0; i<size; i++){
hash[arr[i]] = arr[i];
}
, но я не уверен, что делать в случае повторных ключей и значений. Любая помощь будет высоко оценена.
Вы хешируете int? – UKMonkey
Является ли 'hash [arr [i]] = arr [i]', что вы на самом деле означаете здесь? Если значение и ключ - одно и то же, почему бы не использовать 'multiset' или' unodered_multiset'? –
Является ли цель вашей хэш-таблицы * ключом * порядковым номером массива или значением, хранящимся в этом порядковом номере? Он * выглядит так, как будто вы хотите использовать значение. Ответ на этот вопрос очень важен, как вы это делаете. Если хешмап просто вводит значение массива, то вы можете набирать количество совпадений просто '++ hash [arr [i]];' в вашем цикле, а не в том, что у вас есть сейчас. – WhozCraig