Автор Тема: Ассоциативный контейнер в оберонах  (Прочитано 39531 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Ассоциативный контейнер в оберонах
« : Апрель 05, 2012, 01:52:34 pm »
Сразу признаюсь что интерес у меня праздный.
Не могу никак понять. Как можно сделать контейнер, позволяющий в качестве ключа хранить POINTER, чтобы при этом был быстрый поиск?

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Ассоциативный контейнер в оберонах
« Ответ #1 : Апрель 05, 2012, 02:03:48 pm »
Как можно сделать контейнер, позволяющий в качестве ключа хранить POINTER, чтобы при этом был быстрый поиск?
Если сборщик мусора не перемещающий, то можно рассматривать POINTER как INTEGER. Вот и все дела.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #2 : Апрель 05, 2012, 02:09:34 pm »
Я правильно понимаю, что для этого нужно SYSTEM импортировать?

И кстати не менее интересно как быть если сборщик перемещающий? :)

Ну т.е. мне вообще интересно как в безопасных языках такие контейнеры делают? Где почитать можно?

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Ассоциативный контейнер в оберонах
« Ответ #3 : Апрель 05, 2012, 02:11:16 pm »
Замечу, что на SYSTEM закладываться не стоит, ибо в некоторых реализациях его может не быть, или он может быть другим.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #4 : Апрель 05, 2012, 02:14:55 pm »
Вот я потому и спрашиваю  ;)

DIzer

  • Гость
Re: Ассоциативный контейнер в оберонах
« Ответ #5 : Апрель 06, 2012, 10:59:05 am »

Ну т.е. мне вообще интересно как в безопасных языках такие контейнеры делают? Где почитать можно?
Скорее вы найдете  чтиво о том - насколько важно  НЕ ДЕЛАТЬ этого (без крайней необходимости) ;D и  я согласен с ними...низкоуровневые преобразования типов (или что ЕЩЕ ХУЖЕ неявные преобразования) - удел низкоуровневых небезопасных яп

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #6 : Апрель 06, 2012, 11:14:51 am »
Дык вот в том и вопрос.  :) Ассоциативный контейнер довольно полезная штука. И нужен он чаще в безопасных языках, чем в сях например. А в безопасных языках с POINTERами трабл, т.к. их нельзя сравнивать...
Опять же в жабах такой контейнер есть на сколько я знаю. А как он работает то?  ??? Не линейный поиск ведь там...

DIzer

  • Гость
Re: Ассоциативный контейнер в оберонах
« Ответ #7 : Апрель 06, 2012, 11:21:34 am »
Так я же специально описал в топике про 10 миллионов строк КАК это делается (в примитивном варианте) - что непонятно?

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #8 : Апрель 06, 2012, 11:24:42 am »
Ваще не понял  ;D
Вы о чем? Какая связь с той веткой?

DIzer

  • Гость
Re: Ассоциативный контейнер в оберонах
« Ответ #9 : Апрель 06, 2012, 11:26:47 am »
Ваще не понял  ;D
Вы о чем? Какая связь с той веткой?
  :o Прямая

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #10 : Апрель 06, 2012, 11:30:17 am »
Там описано как безопасные поинтеры индексировать/хэшировать?  ???

DIzer

  • Гость
Re: Ассоциативный контейнер в оберонах
« Ответ #11 : Апрель 06, 2012, 11:45:05 am »
Там описано как безопасные поинтеры индексировать/хэшировать?  ???
Там кэшируется ЗНАЧЕНИЕ а не указатель... (ключ а не адрес , по которому он хранится)

DIzer

  • Гость
Re: Ассоциативный контейнер в оберонах
« Ответ #12 : Апрель 06, 2012, 11:47:02 am »
Сам  указатель хранится в массиве....

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #13 : Апрель 06, 2012, 12:05:32 pm »
Так в массиве то его тоже сначала найти нужно  ;)

Понятно, что запихав указатель в массив, мы получим индекс, который будем хышыровать.
Но контейнеру то я указатель буду совать... Как он узнает индекс этого указателя в массиве?

p.s. Или я чего-то не понимаю...

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Ассоциативный контейнер в оберонах
« Ответ #14 : Апрель 06, 2012, 12:12:36 pm »
Может мы о разном говорим?

Я говорю об ассоциативном контейнере:

ПСЕВДОКОД:

Пер:
Чувак: Указатель на запись: Имя: СТРОКА, пол: Пол;
Возраст: Ассоциативный контейнер;
Код:
Новый(Чувак);
Чувак.Имя = "Вася";
Чувак.пол = Пол.Мужской;
Возраст.Вставить(Чувак, 50);
Результат = Возраст.Найти(Чувак);
Конец;
« Последнее редактирование: Апрель 06, 2012, 12:14:37 pm от ilovb »