Учитывая 2 комплекта (C++) Есть удобный способ получить размер пересечения без alocations (как станд :: set_intersection делает)размера SetIntersection без выделения
Конечно, я мог бы скопировать реализацию минус назначение но я всегда, а не заново изобретать колесо
int count = 0;
while (first1!=last1 && first2!=last2)
{
if (*first1<*first2) ++first1;
else if (*first2<*first1) ++first2;
else {
count++; ++first1; ++first2;
}
}
Я рассматривал, используя зЬй :: set_intersection и пройти «подсчета» interator ...?
который распределение в станд :: set_intersection вы имеете в виду? – 4pie0
@ 0d0a 'std :: set_intersection 'копирует общие элементы в выходной итератор и обычно требует выделения для контейнера и, возможно, также распределения для копируемых элементов. – hvd
Ваш код выглядит правильно, и именно так я бы это сделал. Вы могли бы построить «счетный» итератор, который не выполняет распределение, но я сомневаюсь, что это будет проще, чем это. – Beta