У меня есть два набора 3D-данных. Каждый элемент в этих наборах представляет собой триплет типа (float,float,float)
. Эти наборы данных содержат около дубликатов элементов. Я хочу объединить эти два набора данных таким образом, чтобы в результате набора не было никаких повторяющихся элементов.Выполнение неупорядоченного набора триплетов
Наивный подход должен просто поддерживать список std::vector
для хранения этих триплетов, любой новый триплет должен быть вставлен только, если она уже не присутствует в списке (проверка с помощью простых floating-point equality comparison)
Для того, чтобы уменьшить время вставки, другой подход может заключаться в сохранении триплета в kd-дереве только после запроса для триплета в текущем дереве, чтобы избежать дублирования.
Вопрос:
Я хотел бы знать, если есть и другие подходы к эффективно реализовать неупорядоченный набор с плавающей запятой элементов триплетных?