Я пытался придумать способ написать эффективный алгоритм для выполнения несортированного пересечения двух векторов / массивов, но безуспешно.Я работаю с одним большим неуникальным массивом (обычно от 500 000 до 1 000 000 значений) и одним относительно небольшим (может быть, максимум 5000 значений) уникальным массивом.
Я видел множество предлагаемых здесь методов, включающих такие методы, как unordered_sets, но, насколько я понимаю, это не сработает, если один из массивов не является уникальным.Во-вторых, вместо того, чтобы иметь выходной вектор, который содержит числа, общие для обоих массивов, я бы хотел, чтобы выходной вектор содержал индексы этих общих значений по отношению к большему массиву.Итак, если у большого массива есть 5 местоположений, которые равны одному из значений в меньшем массиве, мне нужен каждый из этих 5 индексов.Возможно, что-то похожее на функцию Python in1d.
У кого-нибудь есть идеи?Спасибо