У меня есть два контейнера (фактический контейнер гибкий, несортированный и отсортированный не имеет значения для меня, поэтому все, что лучше всего ответит на мой вопрос, это то, что я буду использовать), которые содержат некоторые данные.Я хочу сравнить эти два контейнера и либо удалить все «дубликаты» из второго, либо создать новый контейнер только с «новыми» значениями.
Под дубликатом / новым я понимаю следующее: Контейнер 1 содержит:[1, 2, 4, 8, 16] Контейнер 2 содержит: [1, 2, 4, 16, 32]
После запуска алгоритма новый контейнер (или модифицированный контейнер 2) должен содержать: Контейнер3 содержит: [32]
Обратите внимание, что я НЕ хочу, чтобы '8' было в новом контейнере (или модифицированном контейнере), поскольку я хочу только найти 'новые' значения.
Я мог бы легко реализовать наивную и медленную программу, чтобы сделать это сам, однако я ищу наиболее элегантный и эффективный способ добиться этого (Boost хорошо, если STL не предоставляет все необходимые инструменты / алгоритмы без развертывания собственного,в противном случае тоже неплохо кататься).
Итак ... Какой самый лучший (читай: самый элегантный и эффективный) способ сделать это?
Заранее спасибо.
PS Если это вообще актуально, яЯ использую это, чтобы написать «diffing» инструмент для экспортируемых функций из DLL.У меня есть несколько очень больших библиотек DLL, и я хочу найти «новые» экспорты в последних сборках этих библиотек.