Множества произвольного типа: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 1: Строка 1:
Базовый тип для множества может быть произвольным.
<source lang="Delphi">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 -= ['Иванов'];
  writeln('Множество s1: ',s1);
 
  write('Множество s2: ');
  foreach str: string in s2 do
    write(str,' ');
end. </source>
Строки внутри устроены не как битовые векторы, а как хеш-таблицы, за счет этого операции с ними менее эффективны.
== Ссылки ==
== Ссылки ==
[[Особенности языка: базовый уровень]]
[[Особенности языка: базовый уровень]]

Версия от 19:51, 9 января 2010

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

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 -= ['Иванов'];
  writeln('Множество s1: ',s1);
  
  write('Множество s2: ');
  foreach str: string in s2 do
    write(str,' ');
end.

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

Ссылки

Особенности языка: базовый уровень