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

Выделить память под массив в 100500 индексе. Возможно ли? - C++

Восстановить пароль Регистрация
 
dederkay
 Аватар для dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
07.04.2012, 18:39     Выделить память под массив в 100500 индексе. Возможно ли? #1
например мне нужно хранить значение в массиве data, но индекс получен из хеш ф - и, и я не хочу создавать массив статического размера, а выделять память по мере нужды. Внимание вопрос: как выделить память только под нужные мне индексы. И стоит ли хранить хеш ключей? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 18:39     Выделить память под массив в 100500 индексе. Возможно ли?
Посмотрите здесь:

C++ Выделить память под K целых элементов (K вводится с клавиатуры). Заполнить этот массив числами
C++ Динамически выделить память под массив
C++ Выделить память под динамический массив указателей
C++ Выделить память под двумерный массив за один вызов функции malloc
Выделить и удалить память под 4 мерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.04.2012, 18:40     Выделить память под массив в 100500 индексе. Возможно ли? #2
Не совсем вас понял, но, думаю, std::map может вам помочь.
dederkay
 Аватар для dederkay
34 / 34 / 0
Регистрация: 08.12.2010
Сообщений: 161
07.04.2012, 18:59  [ТС]     Выделить память под массив в 100500 индексе. Возможно ли? #3
По всей видимости я неправильно задал вопрос. Я пытаюсь написать hash таблицу. На сколько я понимаю это (наример строки)
C++
1
2
3
4
5
6
7
8
9
10
class D_Base
{
char * data[/*больший размер*/];
uint key[/*статический размерчик*/];
unsigned int hash(strKey)
{
/*допустим я буду юзать maPrime2cHash который возвращает значение вроде 1750356712 которое и будет индексом для значения которое я положу в массив data вроде как  data[1750356712] = {"bla bla bla"}*/
смысл с массива в длину 1750356712 где есть только 1 значение? я просто не уверен возможно ли выделить память только для data[1750356712];
}
}
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
07.04.2012, 19:48     Выделить память под массив в 100500 индексе. Возможно ли? #4
Ну сделайте динамическую хеш-таблицу. У нас ведь когда количество ключей в хеш-таблице увеличивается, то скорость поиска снижается. В этом и отличие хеш-таблиц от сбалансированных деревьев поиска, что поиск быстрый, а памяти много надо)))

Нужно делать так:
Когда хеш-таблица заполнена больше чем на половину, то расширять её в два раза.
Yandex
Объявления
07.04.2012, 19:48     Выделить память под массив в 100500 индексе. Возможно ли?
Ответ Создать тему
Опции темы

Текущее время: 07:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru