Страница 1 из 1
Контейнеры
Добавлено: 30.11.2011 07:03:17
n0th1ng
Может это нубский вопрос, но существует ли в freepascal аналог std::list из C++? Ну или хотя бы std::vector? Чтоб можно было добавлять/удалять элементы в список.
Re: Контейнеры
Добавлено: 30.11.2011 07:51:16
Brainenjii
TList? TFPGList в fgl - обобщение (шаблон) списка
Re: Контейнеры
Добавлено: 30.11.2011 08:14:26
n0th1ng
OK, спасибо вроде то что искал. Просто в учебнике Мансурова нету этого, там был только связанный список.
А как пробежаться по списку?
Re: Контейнеры
Добавлено: 30.11.2011 20:15:21
Odyssey
Ещё для классов, т.е. наследников TObject может быть полезным TFPObjectList или TObjectList из модуля Contnrs. Все предложенные варианты -- это векторы, готовых связанных списков в FPC/Delphi RTL нет. Здесь их используют редко и при необходимости пишут сами. Пробежаться по всем предложенным спискам можно одинаково:
Код: Выделить всё
uses ..., Contnrs;
...
var
I: Integer;
List: TFPObjectList;
begin
List := TObjectList.Create;
...
for I := 0 to List.Count - 1 do
DoSomething(List[I]);
FreeAndNil(List);
end;
В новых версиях FPC/Delphi ввели цикл for ... in, поэтому можно ещё попробовать так:
Код: Выделить всё
var
Item: TObject;
List: TFPObjectList;
begin
List := TObjectList.Create;
...
for Item in List do
DoSomething(Item);
FreeAndNil(List);
end;
Re: Контейнеры
Добавлено: 02.12.2011 04:06:33
n0th1ng
Спасибо, мне пока и векторов хватит
