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

Вниз

Массив структур   Найти похожие ветки 

 
Максим   (2005-10-27 20:01) [0]

Как наиболее эффективно произвести поиск необходимого значения в массиве структур

type
 TPC = record
   Param1: string[20];
   Param2:shortint;
end;

pc:array [1..100] of TPC



т.е. необходимо найти индекс элемента где Param1="Max"

Может есть специальная функция которая возвращает номер элемента? Или всетаки придется просматривать в цикле.


 
Eraser ©   (2005-10-27 20:03) [1]


> Максим   (27.10.05 20:01)

Прийдётся просматривать в цикле. Но цикл циклу рознь. Оптимальнее всего искать одновременно с начала и с конца массива.


 
MBo ©   (2005-10-27 20:40) [2]

>Максим  
чтобы эффективно вести поиск, массив стоит отсортировать по нужному ключу, в данном случае  - по Param1

>Eraser
>Оптимальнее всего искать одновременно с начала и с конца массива.
Как мотивируешь?


 
MBo ©   (2005-10-27 20:40) [3]

Удалено модератором


 
MBo ©   (2005-10-27 20:41) [4]

Удалено модератором


 
Eraser ©   (2005-10-27 20:49) [5]


> MBo ©   (27.10.05 20:40) [2]


> чтобы эффективно вести поиск, массив стоит отсортировать
> по нужному ключу

Это да, но очень бывает что нельзя менять последовательность элиментов.

> Как мотивируешь?

Согласен, [1] это из другой оперы, это я напутал.


 
Максим   (2005-10-27 21:18) [6]

а с чем будет работать более правильнее с массивом объектов или с массивом записией:

type
TPC = record
  Param1: string[20];
  Param2:shortint;
end;

pc:array [1..100] of TPC


или


type
TPC = class
  Param1: string[20];
  Param2:shortint;
end;

pc:array [1..100] of TPC


 
Джо ©   (2005-10-28 05:18) [7]

Вот такой класс вообще не имеет права на жизнь (за редкими исключениями):

> TPC = class
>   Param1: string[20];
>   Param2:shortint;
> end;

Класс - это, все-таки, инкапсуляции данных и методов работы с ними. А тут типичная структура данных.



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
6-1123313271
MuxauJl
2005-08-06 11:27
2005.11.20
ъДТБЧУФЧХКФЕ! У меня проблемы с кодировкой


2-1129800073
Ильичев С.А.
2005-10-20 13:21
2005.11.20
asm


6-1122277100
AbrosimovA
2005-07-25 11:38
2005.11.20
Закрыть открытый порт


2-1131047306
Eksell
2005-11-03 22:48
2005.11.20
Kak v Console ochisteti ekran?


3-1128951219
Германн
2005-10-10 17:33
2005.11.20
Лечение базы Interbase