Множества произвольного типа
Материал из Вики проекта 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.
Множества внутри устроены не как битовые векторы, а как хеш-таблицы, за счет этого операции с ними менее эффективны.
