Другие языки программирования и технологии
Хеш-таблица и объект одно и то же?
Не могу понять хеш-таблица позволяет хранить в себе пары ключ - значение, объекты то же позволяют так делать, так в чем разница?
Хэш-таблица - это https://ru.wikipedia.org/wiki/Ассоциативный_массив: массив, в котором ключом может быть строка (а в развитых языках - любой тип, имеющий операцию "равно").
В ассоциативный массив ты в любой момент можешь добавить любою пару ключ/значение или удалить любую существующую пару.
В ассоциативный массив ты в любой момент можешь добавить любою пару ключ/значение или удалить любую существующую пару.
объект ещё и процедуры хеширования должен содержать, например
В хеш-таблице значения разбросаны в случайном порядке, для доступа к ним, над ключом нужно проработать алгоритм...
Объект же - это просто кусок выделенной памяти с оффсетом для каждой переменной.
Вот объект:
struct {
int x;
bool y;
} object;
Чтобы получить доступ к "х", нужно к указателю на object прибавить sizeof(int), сиречь 4 (для 64 битных машин)
(object + 4) = x;
y - это булевая переменная, стоит после "y" и весит один байт, соответственно отступаем 1 байт от "x", получаем 5.
(object + 5) = y;
Это быстро и просто. Имена преобразуются в оффсеты в процессе компиляции.
При использовании хеш-таблиц получится вот такая медленная и увесистая жесть:
https://ru.wikipedia.org/wiki/Хеш-таблица

Объект же - это просто кусок выделенной памяти с оффсетом для каждой переменной.
Вот объект:
struct {
int x;
bool y;
} object;
Чтобы получить доступ к "х", нужно к указателю на object прибавить sizeof(int), сиречь 4 (для 64 битных машин)
(object + 4) = x;
y - это булевая переменная, стоит после "y" и весит один байт, соответственно отступаем 1 байт от "x", получаем 5.
(object + 5) = y;
Это быстро и просто. Имена преобразуются в оффсеты в процессе компиляции.
При использовании хеш-таблиц получится вот такая медленная и увесистая жесть:
https://ru.wikipedia.org/wiki/Хеш-таблица

хоспади. массив знаешь что такое? ну вот хэш таблица это массив, у которого индексы это не числа а что угодно, слова например
У хеш-карты не может быть методов (которые смогут обращаться к this), у методов и свойств не может быть модификаторов доступа. Хеш-карту, в отличии от объекта, нельзя расширить и нельзя сделать ей конструктор/деструктор.
И сама хеш-карта/-таблица является объектом.
Проще говоря:
Объект - единица языка, которая может выполнять различные функции в пределах самого себя.
Хэш-карта - объект, созданный для хранения данных без определённого порядка, но по ключу.
И сама хеш-карта/-таблица является объектом.
Проще говоря:
Объект - единица языка, которая может выполнять различные функции в пределах самого себя.
Хэш-карта - объект, созданный для хранения данных без определённого порядка, но по ключу.
Похожие вопросы
- Хеш-таблица, Реализация на базе указателей. Хеш-таблица - что это? Реализация на базе указателей... как это ?
- Возможно ли восстановить файл из хеша имея компьютер неограниченной мощности? (фантастической)
- PHP - как сделать на сайте "восстановление пароля", если пароли в бд хранятся в виде md5 хеш кодов?
- Какая концепция таблиц в БД MySQL лучше?
- Вставка "вложенной" таблицы в Excel (или Access)
- Импорт имен файлов в таблицу Excel
- Агрегация объектов. С++
- Как легче создать большую базу данных в ACCESS 2010? Проблема вот в чем: сейчас б/д содержит 60 таблиц, 140 запросов. На
- Нужна программа для заполнения таблицы 9*2, чтобы в ней не было повторяющихся столбцов на языке lua (можно на С++)
- Web программирование, Обновление таблицы в реальном времени. Научите, пожалуйста!
спасибо