Учись программированию на C++ Builder бесплатно!

Описание


При вызове Exchange два элемента списка с позициями Index1 и Index2 обмениваются местами. Индексы позиций начинаются с 0 (0 - первый элемент).
Если в списках строк со строками связаны объекты, они остаются связанными с теми же строками в их новых позициях.

Не применяйте метод Exchange к сортированным спискам TStringList, за исключением случая взаимного перемещения двух одинаковых строк, связанных с разными объектами. Дело в том, что метод Exchange не проверяет условий сортировки и может нарушить упорядоченность списка.

Классы


TList, TStringList, TStrings

Прототип


TList:

void __fastcall Exchange(int Index1, int Index2);

TStrings и TStringList:

virtual void __fastcall Exchange(int Index1, int Index2);

Пример


Пусть список List типа TList содержит указатели на целые числа. Тогда приведенная ниже программа перемещает на первое место указатель на минимальное число (это один шаг пузырьковой сортировки).

for(int i - 1; i < List->Count; i++)
if (* ((int *)List->Items[0]) > *((int *)List->Items[i]))
List->Exchange(0, i);

Полностью пузырьковая сортировка списка указателей на целые числа реализуется вложенными циклами:

for(int j = 0; j < List->Count-1; j++)
for(int i = j; i < List->Count; i++) (
if (*((int *)List->Items[j]) > * ((int *)List->Items[i]))
List->Exchange(j, i);
Поделиться