Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Apelsin199
11 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 127
#1

Хеширование - C++

01.03.2013, 16:41. Просмотров 759. Ответов 1
Метки нет (Все метки)

Вот такая проблема... Точнее их много, но если по порядку, то сейчас только такая проблема:
Хеширование, методом середины квадрата, разрешение коллизий: метод открытая адресация.
Есть код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <clocale>
#include <stdio.h>
#include<conio.h>
 
class hashTable
{
public:
    void Add (char *str);
    bool Contains (char *str);
    void Delete (char *str);
    
    hashTable()
    {
        // create array default size
        size=100;
    }
    hashTable(int size)
    {
        // create array[size]
        //arr=new char[size];
    }
    ~hashTable();
private:
    // array of string/pair<int, string>
    // array size
    //метод открытой адресации подразумевает иметь массив 
    //типа "ключ-значение", то бишь пару...
    int size;
    char *arr[256];
    int hashKey (char *str);
};
 
int hashTable :: hashKey (char *str)
{
    unsigned char key=0;
    while(*str)
    {
        key +=*str;
        *str++;
    }
    key*=key;
    key=key%256;
    return key;
}
 
void hashTable :: Add (char *str)//????o_O
{
    
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    FILE *in;
    in=fopen("input.txt","r");
    hashTable table;
    char *str;
    while(!feof(in))
    {
        fscanf(in,"%s", &str);
        table.Add(str);
    }
    getch();
    return 0;
}
Там еще по сути ничего нет... Но вот в чем проблема, как понять вот эту фразу:
//метод открытой адресации подразумевает иметь массив
//типа "ключ-значение", то бишь пару...
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2013, 16:41     Хеширование
Посмотрите здесь:

Хеширование SHA-1 - C++
Подскажите как сделать с текстом? Это отдельная программа, которая считывает с файла или она сразу должна прописывать в коде генерирования...

Хеширование файлов - C++
Доброго времени суток) Я в этой теме пока мало что понимаю, но может мне может кто то объяснить, как хешируются файлы (такие как .exe)....

Хеширование чисел - C++
Здравствуйте, прочел пост taras atavin И стало интересно, действительно ли такое можно сделать ? реально ли хешировать число до 70...

Хеширование строки - C++
Всем привет! Знаю што на си++ можно захешыровать строку в алгоритм md5 несколькима способами, нашел код хешырования на чистом си, но...

идеальное хеширование - C++
В лабораторной работе задание &quot;реализовать идеальное хеширование&quot;. в методичке очень мало материала по хешированию и по данному вопросу в...

MD5 хеширование - C++
Вопрос и состоит в том, как зашифровать к примеру строку string в md5??

Открытое и закрытое хеширование - C++
Не могли бы Вы привести примеры простеньких программ, чтобы я разобрался. Допустим есть строка(массив) символов и нужно его прохешировать...

Наследование, классы, хеширование - C++
есть у кого простые задачи на эти темы? у меня задания нет, нужны любые... по поиску полазил- не нашёл ничего лёгкого=(

Хеширование MD5 CryptoAPI - C++
Решал задачу на хеширование текста алгоритмом MD5 Дошел до такого: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;windows.h&gt; ...

Хеширование базы данных - C++
Имеется база данных и вывод её на экран, как произвести хэширование отдельно каждого поля Иванов Иван Иванович Сидоров Иван...

Хеширование-метод середины квадрата - C++
Вот такая ситуация... Тип данных строки, метод разрешения колизии &quot;открытая адресация&quot;. Проблема в самой хеш-функции, прочитал много...

Хеширование таблицы методом деления - C++
Разработать процедуру хеширования массива записей методом деления, в которой предполагается частое добавление данных.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
01.03.2013, 17:38     Хеширование #2
Цитата Сообщение от Apelsin199 Посмотреть сообщение
каким образом в одном массиве хранить пару значений?... Можно, точнее, очень желательно с примером на С++...
использовать
C++
1
std::pair<...
как вариант
Yandex
Объявления
01.03.2013, 17:38     Хеширование
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru