Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графы.docx
Скачиваний:
2
Добавлен:
01.09.2019
Размер:
55.92 Кб
Скачать

Класс tList

Класс TList — универсальный список. Чтобы с ним работать, надо подключать модуль classes. Он представляет собой массив нетипизированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются — эта обязанность лежит на программисте. Приведем доступные ему методы и свойства класса:

property Items[Index: Integer]: Pointer;

Возвращает указатель на содержимое элемента списка с индексом Index. Это свойство является векторным свойством, принимаемым по умолчанию, и его имя можно при записи опускать (см. раздел "Свойства").

property Count: Integer;

Определяет число элементов в списке.

property Capacity: Integer;

Определяет максимальное число элементов в списке. Оно может изменяться как явно — пользователем, так и при добавлении элементов в список, в том случае, когда Count>=Capacity. Максимальная емкость списка — 16380 элементов.

Управляют списком следующие методы:

function Add(Item: Pointer): Integer;

Добавляет в конец списка элемент, который будет равен Item (т. е. указывать на те же данные).

function Remove(Item: Pointer): Integer;

Удаляет из списка элемент, который равен Item.

procedure Insert(Index: Integer; Item: Pointer) ;

Вставляет элемент, равный Item, перед элементом с индексом Index.

procedure Delete(Index: Integer);

Удаляет из списка элемент с индексом Index.

procedure Clear;

Очищает список, устанавливая величины Count и Capacity в 0.

procedure Exchange(Indexl, Index2: Integer);

Меняет местами элементы списка с индексами Indexl и Index2.

function Expand: TList;

При соблюдении равенства Count=Capacity расширяет список. При емкости списка менее пяти элементов, он по умолчанию расширяется на четыре элемента, при пяти-восьми — на восемь, более восьми — на шестнадцать.

function First: Pointer; function Last: Pointer;

Возвращают значения первого п последнего (с индек­сом Count-1) элементов списка соответственно.

function IndexOf(Item: Pointer): Integer;

Возвращает индекс элемента, равного Item.

procedure Move(CurIndex, Newlndex: Integer) ;

Перемещает элемент списка с положения Curlndex в положение Newlndex.

procedure Pack;

Упаковывает список, сдвигая элементы к началу на пустующие места.

VECTOR

Для создания вектора вам необходимо подключить <vector>. Затем создание вектора почти ничем не отличается от создания переменной и/или массива:

vector <type> name; //здесь type- тип данных в векторе, а name - имя вектора

Для записи в вектор достаточно набрать имя вектора.push_back(что положить)

vector <int> test;

test.push_back(10);

test.push_back(20);

Обращение к n-ому элементу ничем не отличается от обращения к элементу массива:

test[0]++;

cout<<test[1];

test[1]=222;

Для удаления последнего элемента вектора используется функция pop_back()

test.pop_back();

Еще немного полезных функций:

  • test.at(i) - равносильно записи test[i], но при этом, если i-ого элемента не существует, программа не вылетит:)

  • test.assign(n,m) - записывает в массив n элементов со значением m

  • test.assign(start,end) - записывает в вектор значения от start до end.Внимание!!! start и end - интераторы (указатели) на элементы другого вектора.

  • test.front() - возвращает ссылку на первый элемент

  • test.back() - возвращает ссылку на последний элемент

  • test.begin() - возвращает интератор первого элемента вектора

  • test.end() - последнего + 1

  • test.clear() - очищает вектор

  • test.erase(i) или test.erase(start,end) - удаляет элемент с итератором i или элементы с итераторами между start и end

  • test.size() - возвращает количество элементов в векторе

  • test.swap(test2) - меняет местами содержимое вектора test и  вектора test2

  • test.insert(a,b) - вставляет в test переменную b перед элементом с итератором a и возвращает итератор вставленного элемента

  • test.insert(a,n,b) - вставляет n копий b

  • test.insert(a,start,end) - вставляет элементы между итераторами start и end перед a

  • test.sort(start,end) –сортировка всех элементов вектора между итераторами start и end. Надо подключить <algorithm.h>.