Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
#1

растолкуйте про хэш плиз - C++

23.08.2011, 13:33. Просмотров 931. Ответов 22
Метки нет (Все метки)

на картинке реализация поиска в "hash_map" от Страуструпа. И все бы хорошо если бы не один момент.
b и v это векторы. И доступ по индексу в векторе [] ассоциируется у меня с чем то упорядоченным, например [0], [5] и тд. а строка
C++
1
set_type i = hash(K)%b.size()
- какое значение дает i? можно ли гарантировать применив остаток от деления hash(k) на размер вектора, в качестве индекса, что мы не выйдем за пределы вектора в какую либо сторону?
0
Миниатюры
растолкуйте про хэш плиз  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2011, 13:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос растолкуйте про хэш плиз (C++):

Описать класс "хэш-таблица", используя unordered_set и заданную хэш-функцию - C++
Здравствуйте. Есть класс объектов и ключ сравнения: #pragma once #include <iostream> #include <vector> #include <list> #include...

Растолкуйте new с адресацией! - C++
Я так понимаю что это для избегания повторного выделения памяти? но до конца так и не понял. Спасибо откликнувшимся. Вот я...

Растолкуйте код - C++
Помогите с кодом cout << (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : a) << (j <= M ? "" : "\n"); что делает cout << ( ? : ); я...

Растолкуйте почему выводится единица - C++
Почему выводит 1?? #include int main(int argc, char** argv) { int x = 0; int y = 0; if (x++ && y++) ...

Case в switch и вообще растолкуйте за код - C++
Объясните пожалуйста что имеет в виду Стаус 1)case'(':case')': 2) curr_tok=Token_Value(ch) это приведение к Token_Value? 3)чем по...

Растолкуйте строчку из вики о фабричном методе - C++
Слово "специфицировались" никак понять не могу. Также, не могу понять как это так, чтоб на создаваемые классом объекты влияли...

22
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,544
Завершенные тесты: 3
23.08.2011, 13:43 #2
AzaKendler, Да. Можно. Почему нет то?
0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 13:51  [ТС] #3
ForEveR, просто не улавливаю. остаток от деления ЛЮБОГО числа на размер вектора - даст индекс не выходящий за размер?
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,544
Завершенные тесты: 3
23.08.2011, 14:02 #4
AzaKendler, Размер вектора 100.
Найдите мне такое число, которое при остатке от деления на 100 даст больше 99 или же отрицательный результат
2
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 14:13  [ТС] #5
да. пока не удалось подобрать такое число. прошелся парой циклов . ну а что делать. если так не дошло.
Спасибо!
0
fasked
23.08.2011, 14:14
  #6

Не по теме:

Цитата Сообщение от AzaKendler Посмотреть сообщение
да. пока не удалось подобрать такое число. прошелся парой циклов. ну а что делать. если так не дошло.
Главное, что в итоге дошло

0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 14:15  [ТС] #7
fasked,
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.08.2011, 14:18 #8
Цитата Сообщение от ForEveR Посмотреть сообщение
Найдите мне такое число, которое при остатке от деления на 100 даст больше 99 или же отрицательный результат
C
1
2
3
4
5
6
7
diagon@shadeware:~$ cat test.cpp && gcc test.cpp && ./a.out
#include <cstdio>
main(){
    printf("%d\n", (-2) % 100);
}
-2
diagon@shadeware:~$
2
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,544
Завершенные тесты: 3
23.08.2011, 14:19 #9
diagon, Браво) Забыл упомянуть, что неотрицательное)
0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 14:20  [ТС] #10
это так и это биг мак.
Так что в итоге то? Можно выскочить за вектор?
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
23.08.2011, 14:20 #11
Цитата Сообщение от ForEveR Посмотреть сообщение
AzaKendler, Размер вектора 100.
Найдите мне такое число, которое при остатке от деления на 100 даст больше 99 или же отрицательный результат
Если строго математически, то остаток НИКОГДА не может быть отрицательным. Поэтому все остатки при делении на 100 лежат во множестве {0,1,...,99}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,544
Завершенные тесты: 3
23.08.2011, 14:22 #12
Функцию hash в студию!
0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 14:25  [ТС] #13
Olga_, а ето что? printf("%d\n", (-2) % 100);

Добавлено через 21 секунду
ForEveR, ок. дочитаю да места где он ее расписывает, что то пока нету ее.
Т.е. вся надежда на нее, получается.
остатком от деления не защитится, это я и хотел узнать

Добавлено через 1 минуту
diagon, спасибо 2 раза.
0
Olga_
842 / 184 / 16
Регистрация: 01.08.2011
Сообщений: 502
23.08.2011, 14:26 #14
Цитата Сообщение от AzaKendler Посмотреть сообщение
Olga_, а ето что? printf("%d\n", (-2) % 100);
Сказано же "строго математически", в математике нет отрицательных остатков, это гарантирует единственное разложение числа по модулю другого.
0
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
23.08.2011, 14:27  [ТС] #15
Olga_, да, Ольга. спасибо. Просто я не понял сразу
0
23.08.2011, 14:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2011, 14:27
Привет! Вот еще темы с ответами:

На Дваче анон поднял хитрый пример на тему ++i, растолкуйте мне, гики, а то я так ничего и не понял - C++
Цитирую...

Про линковку библиотек и про архитектуру иерархии классов - C++
Добрый день! Возникла такая вот проблема. Я использую MinGW Developer Studio. Это довольно старая IDE, поддержка которой завершилась в 2005...

Помогите студенту плиз - C++
Было дано задание-&quot;Подобрать несколько примеров тем программных продуктов&quot;. Задание корявое, в следствии- на ум ничего вообще не приходит. ...

Списки (Помогите плиз) - C++
1)Линейный упорядоченный список с удалением,нахождением и вставкой элемента. 2)Список списков(список состоит из заголовков списков) ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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