Контейнеры
Модератор: Модераторы
Контейнеры
Может это нубский вопрос, но существует ли в freepascal аналог std::list из C++? Ну или хотя бы std::vector? Чтоб можно было добавлять/удалять элементы в список.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
TList? TFPGList в fgl - обобщение (шаблон) списка
OK, спасибо вроде то что искал. Просто в учебнике Мансурова нету этого, там был только связанный список.
А как пробежаться по списку?
А как пробежаться по списку?
Ещё для классов, т.е. наследников TObject может быть полезным TFPObjectList или TObjectList из модуля Contnrs. Все предложенные варианты -- это векторы, готовых связанных списков в FPC/Delphi RTL нет. Здесь их используют редко и при необходимости пишут сами. Пробежаться по всем предложенным спискам можно одинаково:
В новых версиях FPC/Delphi ввели цикл for ... in, поэтому можно ещё попробовать так:
Код: Выделить всё
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;
Спасибо, мне пока и векторов хватит 
