Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Ассоциативный массив   Найти похожие ветки 

 
llirik ©   (2005-06-08 11:46) [0]

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


 
Alex Konshin ©   (2005-06-08 12:46) [1]

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


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

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


 
TUser ©   (2005-06-08 12:57) [3]

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


 
Amoeba ©   (2005-06-08 13:09) [4]

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


 
Deka ©   (2005-06-08 13:36) [5]

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


 
Amoeba ©   (2005-06-08 14:10) [6]


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

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


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

THashedStringList, TBucketList


 
Erik1 ©   (2005-06-08 15:55) [8]

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


 
llirik ©   (2005-06-08 19:13) [9]

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 стопудово удобней


 
llirik ©   (2005-06-08 19:38) [10]

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 указатели сравнивает, а мне нужно, чтобы значения того, на что эти указатели указывают



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
4-1115290216
DrFaust
2005-05-05 14:50
2005.06.29
События Windows


9-1111275692
Green_Templar
2005-03-20 02:41
2005.06.29
TDXImageList


1-1117510543
Сергей Ю.
2005-05-31 07:35
2005.06.29
Как отловить Error reading XXXXXXXX?


1-1118132886
john_mag
2005-06-07 12:28
2005.06.29
ExcelApplication


14-1117612743
WondeRu
2005-06-01 11:59
2005.06.29
Как работать с EMF и MF картинками?