Множества произвольного типа

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Базовый тип для множества может быть произвольным.

var 
  s1: set of string := ['Иванов','Попов','Сидорова','Петров'];
  s2: set of string := ['Козлов','Петров','Иванов'];
begin
  writeln('Множество s1: ',s1);
  writeln('Множество s2: ',s2);
  writeln('Объединение множеств s1 и s2: ',s1+s2);
  writeln('Пересечение множеств s1 и s2: ',s1*s2);
  writeln('Разность множеств s1 и s2: ',s1-s2);
  Include(s1,'Умнов');
  s1 -= ['Иванов']; // делает то же, что и Exclude
  writeln('Множество s1: ',s1);
  
  write('Множество s2: ');
  foreach str: string in s2 do
    write(str,' ');
end.

Множества внутри устроены не как битовые векторы, а как хеш-таблицы, за счет этого операции с ними менее эффективны.

Ссылки