ГОСТ Р ИСО 21090—2016
7.9.8.3 Атрибуты
7.9.8.3.1 item . Bag(T): содержание мультимножества
Это пример шаблона обертки примитивного типа данных. Дополнительные сведения приведены
в 6.3.
7.3.8.4 Равенство
Два мультимножества равны, только если они оба пусты или оба содержат те же самые элементы,
каждый из которых присутствует в них одинаковое число раз.
Примечание — Определение содержания элемента основано на той же семантике равенства, которая
описана в настоящем стандарте, поэтому вполне возможно, к примеру, что экземпляр типа BAG(CD) может быть
равен экземпляру типа BAG(CO).
7.3.8.5 Инварианты:
Отсутствуют.
Примечание — Правила об истории или режиме изменений применимы к элементу, где используется
BAG(T).
7.3.8.6 Операции
7.9.8.6.1 ипюп(Ьад : BAG(T)) . BAG(T): мультимножество, содержащее все элементы текущего
мультимножества (this) и элементы другого мультимножества (bag). Если элемент содержится несколь ко
раз. то в результате объединения мультимножеств общее число его экземпляров будет равно сумме его
экземпляров в мультимножества this и bag. Операция union идентична операции including.
7.9.8.6.2 union(set: DSET(T)): BAG(T): объединение текущего мультимножества (this) и множества
set. Если элемент содержится и в мультимножестве this, и в множестве set. то в результате объедине
ния общее число его экземпляров будет на единицу больше числа его экземпляров в мультимножестве
this. Операция union идентична операции induding.
7.9.8.6.3 intersection(bag : BAG(T)). BAG(T): пересечение текущего мультимножества (this) и муль
тимножества bag.
7.9.8.6.4 intersection(set: DSET(T)): DSET(T): пересечение текущего мультимножества (this) и мно
жества set.
7.3.8.6.5 induding(object : Т) . BAG(T): мультимножество, содержащее все элементы текущего
мультимножества (this) и элемент object. Если элемент object уже присутствует в мультимножестве this, то
в результате данной операции число его вхождений увеличится на единицу.
7.3.8.6.6 including(coll: COLL(T)): BAG(T): мультимножество, содержащее все элементы текущего
мультимножества (this) и все элементы коллекции coll. Эта операция идентична операции union.
7.3.8.6.7 exduding(object : Т) : BAG(T): мультимножество, содержащее все элементы текущего
мультимножества (this), за исключением всех вхождений элемента object.
7.3.8.6.8 exduding(coll: COLL(T)): BAG(T): мультимножество, содержащее все элементы текущего
мультимножества (this), за исключением всех элементов коллекции coll.
7.9.8.6.ЭasList(): LIST(T): последовательность, содержащая все элементы текущего мультимно
жества (this) в произвольном порядке.
7.9.8.6.10asSet(): DSET(T): последовательность, содержащая все элементы текущего мультим
ножества (this) с удаленными дубликатами.
7.Э.8.7 Примеры
<exair.ple xsi:type-"BAG_TEL">
<item value-"te1:♦15556667777" use-"H"/>
<item nullKlavor-"UNK" jse-"WP"/>
</example>
Мультимножество телефонных номеров, содержащее известный номер домашнего телефона и
неизвестный номер служебного телефона.
<exan.ple xsi:type-"BAG_TEL.">
<item nullFlavor—"UNK" jse-"WP"/>
<item value-"tel: 15556667777" use-"H"/>
</exair.ple>
127