В C++, я ищу осуществить оператор для выбора элементов в списке (тип В) на основе B содержитс полностью в пределах А.шаблонов, и оператор С ++ для логики: B, содержащихся на множестве А
В книге «Логический дизайн цифровых компьютеров» Монтгомери Фистер-младший (опубликовано в 1958 году), стр. 54, он гласит:
F11 = A + ~ B имеет две интересные и полезные ассоциации, ни одна из которых не имеет многого с компьютерным дизайном. Первое - это логическое обозначение импликации ... Второе обозначение включения ... Это может быть выражено знакомым взглядом, B < A; или утверждением «B включено в A»; или булевым уравнением F11 = A + ~ B = 1.
Моя первоначальная реализация была в C. Обратные вызовы были предоставлены списку для использования для таких операций. Примером является список ints и структура, содержащая два ints, min и max для целей выбора.
Там выбор будет основан на B> = A-> min & & B < = A-> max.
Использование C++ и шаблонов, как бы вы приблизились к этому после реализации общего списка на C с использованием указателей void и обратных вызовов?
Использует < как переодетый оператор для таких целей ... <ugh> Зло? </тьфу >
(или с помощью класса B для критериев отбора, реализации сравнения путем перегрузки>?)
редактировать: моя реализация узлов для списка содержит элемент для маркировки элемента выбор или нет.
в отношении наборов и уникальности, данные в списке, скорее всего, содержат позицию, определяющую позицию по временной линии, учитывая, что это один из основных критериев выбора, использование термина set может вводить в заблуждение, поскольку нет гарантированная уникальность относительно позиции по временной линии - события могут происходить одновременно.
+1 для set_intersection.Алгоритмы стандартной библиотеки слишком часто игнорируются, и все же часто существует тот, который вполне подходит для того, что вы пытаетесь выполнить. –
Возможно, мое использование набора терминов было неправильным в этом случае, список не обязательно будет содержать уникальные элементы (где уникальность основана на том, что выбирается). –
, принятый для упоминания функторов, все еще думал о функциональных указателях. –