![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А не устраивать ли нам небольшие конкурсы по кодингу? (ч.4)
OSokin © (2005-05-06 19:09:00)
Страницы: < 1 2 ... 6 7 8 9 10 11 12 ... 31 32 >
Будут ли еще конкурсы?
Darthman (2005-08-19 21:32:00) [161]//я намериваюсь использовать двусвязные циркулярные списки
Мощно задвинул!
Кефир87 (2005-08-19 14:26:00) [162]Я не стал выяснять с чего ркчь пошла о списках... Но разубежите меня если я не прав: при использовании дин. массивов и стрингов добавляется 1кб к экзе. По этому лично я намериваюсь использовать двусвязные циркулярные списки 8)
DR0N (2005-08-19 00:11:00) [163]Сделал музыку которая генерируется на лету в миди.. всего 3 килобайта в ЕХЕ прирост и никаких FMOD =)... Теперь ищу хорушую нотную книгу что бы содрать оттуда композицию =0)
NewWonder (2005-08-18 22:41:00) [164]
> Zer0 ©
Оно хорошо тем, что есть возможность потренироваться кодить в условиях минимальных объёмов.
Zer0 (2005-08-18 22:29:00) [165]хорошо хоть лимит в 128к есть, не будет ODE и прочих левых приблуд.
DR0N (2005-08-17 10:25:00) [166]2NewWonder так держать! Конкурс и в прямь очень интересный!
NewWonder (2005-08-17 09:55:00) [167]>> NewWonder, а без попыток "что-либо" сделать ты никогда не
>> научишься это "что-либо" делать...
Полностью согласен. Поэтому уже начал писать гоночки к конкурсу ;) Конкурс и впрямь интересный :)
Zer0 (2005-08-16 15:10:00) [168]давайте тогда уже начнем обсуждать особенности поведения мух-дроздофил в период разможения. вобщемто если есть желание потрепаться не по теме помойму надо сразу топать в соотвествующий раздел форума =)
A22 (2005-08-16 14:52:00) [169]нормальный list в STL. не массив
Sphinx (2005-08-16 14:30:00) [170]Ну раз пошла такая пьянка :)
И затронули тему матчасти...
Спискомназывается упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения, исключения.
http://www.rsdn.ru/article/alg/list.xml#EHA
dRake (2005-08-16 14:00:00) [171]У борланда вообще не список. А хз что :) В этом XProger прав.
Список это в общем случае совокупность элементов, причем у каждого элемента имеется указатель на предыдущий или следующий элемент (односвязный список) или на оба сразу (двусвязный список), односвязный список который задается указателем на первый элемент (стек) или на последний элемент (очередь). Короче господа учите мат часть :)
Sphinx (2005-08-16 11:37:00) [172]2 Sapersky
Я знаю что XProger привел связаный список...но он же сказал "Sphinx, то что ты привёл списком назвать нельзя, т.к. это обычный массив указателей..." ;)
Sapersky (2005-08-16 11:11:00) [173]Список и то, и другое. В [463] - связный, у Борланда - линейный (не уверен, что правильно их обозвал, но суть в том, что есть несколько разновидностей).
Sphinx (2005-08-16 10:57:00) [174]2 XProger ©
То что я привел - это исходник класса TList от Борланда *посмеиваясь*
Извени...но в данном случае ты знаешь что ты не прав, но не хочешь это признать ;)
C:\Program Files\Borland\Delphi7\Source\Rtl\Common\Classes.pas
{ Maximum TList size }
MaxListSize = Maxint div 16;
...
{ TList class }
PPointerList = ^TPointerList;
TPointerList = array[0..MaxListSize - 1] of Pointer;
TListSortCompare = function (Item1, Item2: Pointer): Integer;
TListNotification = (lnAdded, lnExtracted, lnDeleted);
// these operators are used in Assign and go beyond simply copying
// laCopy = dest becomes a copy of the source
// laAnd = intersection of the two lists
// laOr = union of the two lists
// laXor = only those not in both lists
// the last two operators can actually be thought of as binary operators but
// their implementation has been optimized over their binary equivalent.
// laSrcUnique = only those unique to source (same as laAnd followed by laXor)
// laDestUnique = only those unique to dest (same as laOr followed by laXor)
TListAssignOp = (laCopy, laAnd, laOr, laXor, laSrcUnique, laDestUnique);
TList = class(TObject)
private
FList: PPointerList;
FCount: Integer;
FCapacity: Integer;
protected
function Get(Index: Integer): Pointer;
procedure Grow; virtual;
procedure Put(Index: Integer; Item: Pointer);
procedure Notify(Ptr: Pointer; Action: TListNotification); virtual;
procedure SetCapacity(NewCapacity: Integer);
procedure SetCount(NewCount: Integer);
public
destructor Destroy; override;
function Add(Item: Pointer): Integer;
procedure Clear; virtual;
procedure Delete(Index: Integer);
class procedure Error(const Msg: string; Data: Integer); overload; virtual;
class procedure Error(Msg: PResStringRec; Data: Integer); overload;
procedure Exchange(Index1, Index2: Integer);
function Expand: TList;
function Extract(Item: Pointer): Pointer;
function First: Pointer;
function IndexOf(Item: Pointer): Integer;
procedure Insert(Index: Integer; Item: Pointer);
function Last: Pointer;
procedure Move(CurIndex, NewIndex: Integer);
function Remove(Item: Pointer): Integer;
procedure Pack;
procedure Sort(Compare: TListSortCompare);
procedure Assign(ListA: TList; AOperator: TListAssignOp = laCopy; ListB: TList = nil);
property Capacity: Integer read FCapacity write SetCapacity;
property Count: Integer read FCount write SetCount;
property Items[Index: Integer]: Pointer read Get write Put; default;
property List: PPointerList read FList;
end;
XProger (2005-08-16 03:46:00) [175]Sphinx, то что ты привёл списком назвать нельзя, т.к. это обычный массив указателей...
type
PListItem = ^TListItem;
TListItem = record
data : pointer;
Next : PListItem;
end;
var
items : PListItem;
items - список
Sphinx (2005-08-16 01:32:00) [176]блин...
и редактирования тут нету..
читать так:
"Список - массив...." и далее по тексту...
Sphinx (2005-08-16 01:02:00) [177]2 XProger ©
спивок - массив нетипизированых указателей...не думай что ты самый умный ;)
Ты очень хороший программист, и не порти моё мнение о себе ;)
PPointerList = ^TPointerList;
TPointerList = array [0..MaxListSize] of Pointer
TList = class(TObject)
private
FList: PPointerList;
...
Дело не в природе TList а в том, как он реализован, можно и самому переписать всё это - что не трудно, но тут уже готовое есть ;)
Кстати я ошибся там...
не в SisUtils включено Classes
а наоборот в Classes - SysUtils
XProger (2005-08-16 00:09:00) [178]Sphinx, "Придется даже без TList обходится" или придётся узнать что такое списки...
Antonn (2005-08-15 13:59:00) [179]Sphinx © (15.08.05 13:07) [458]
ну и ладно, не очень то и огорчился:)))
Sphinx (2005-08-15 13:07:00) [180]2 Antonn ©
Программирующим на VCL эти данные не помогут :) все эти модули (кроме DInput) уже включены как говорится...
А DI - это для меня важно, я им пользуюсь обычно...придется отказатсья :(