Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ассоциативный массив [D7, WinXP]


llirik ©   (2005-06-08 11:46:00) 

Есть ли Delphi что-либо, напоминающее известный map из STL?


llirik   (2005-06-08 19:38:00) [1]

2 Суслик, REA
 то же интересно, это я запомню

вот только чего не так:
If the item is already in the bucket, Add raises an EListError exception. Otherwise, it adds the item to the correct bucket and returns AData.

то есть, я так понимаю, он у Item указатели сравнивает, а мне нужно, чтобы значения того, на что эти указатели указывают


llirik   (2005-06-08 19:13:00) [2]

2 TUser
 TStringList -- очень медленно будет, не гонюсь за удобством, просто велосипедов не хочется :)

2 Alex Konshin ©
 опять же изобретать велосипед не охота. Задача в сущности пустячная, вот бы map мне :) ... и полчаса делов

2 Amoeba
 а вот это любопытно, впервые слышу, спасибо. Буду разбираться.

 и по-моему, отсутсвие поддержки таких основных структур данных как, например, ассоциативные массивы, в стандартной поставке делфи есть большой минус в ее пользу :)

пользуясь случаем еще выскажусь :), может кто даст коментарии где я тут слишком уж задвигаю

вот встроенный массив в делфи array

как вернее писать SetLength(arr, 10) и каждый раз как понадобилось еще место под один элемент, то
SetLength(arr, High(arr) + 2) ?

или всетаки ввести счетчик элементов массива ca: integer
и делать что-то вроде:

// в начале прог-ы
ca := 0;
SetLength(arr, 100); // ну сразу побольше
...
// где-то ниже
где нужно еще один элемент
inc(ca);
if ca >= High(arr) then SetLength(arr, ca + ca div 2);

если последний вариант есть дао, то имхо vector из STL стопудово удобней


Erik1   (2005-06-08 15:55:00) [3]

Да действитель но есть на http://gurin.tomsknet.ru
Библиотека называется DeCal, а класс для реализации ассоциативного масива DMap DMultiMap, еще есть DHashMap - думаю понятно, что это такое. :)


REA   (2005-06-08 15:33:00) [4]

THashedStringList, TBucketList


Amoeba   (2005-06-08 14:10:00) [5]


> Deka ©   (08.06.05 13:36) [5]
> Где-то была целая STL для Delphi...

Я уже дал ссылку на эту библиотеку и статью о ней (SDL - Standard Delphi Library) в своем посте [4].


Deka   (2005-06-08 13:36:00) [6]

Где-то была целая STL для Delphi...


Amoeba   (2005-06-08 13:09:00) [7]

Специально не смотрел, но может быть это найдется здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=891


TUser   (2005-06-08 12:57:00) [8]

Можно еще TMemIni или TStringList использовать, и указывать пару ключь = значение.


Суслик   (2005-06-08 12:55:00) [9]

глянь модуль Contnrs


Alex Konshin   (2005-06-08 12:46:00) [10]

Можешь сделать что-то похожее на основе моих AVLtrees или Arrays.
Смотри на сайте в анкете.


Наверх

Титульная страница Поиск, карта сайта Написать письмо