Главная страница
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.073 c
14-1130748519
Gydvin
2005-10-31 11:48
2005.11.20
UserGate - Help me


14-1130687101
DK2DK2DK2
2005-10-30 18:45
2005.11.20
ShareWare какими программами вы пользуетесь


3-1128617563
Michael5
2005-10-06 20:52
2005.11.20
Скролл "колесиком" в DBGrid работает только в видимой части грида


9-1120747596
Kobik
2005-07-07 18:46
2005.11.20
проблема с DirectSound


1-1130676546
Draught
2005-10-30 15:49
2005.11.20
Замена Memo на что либо более подходящее