Учитывая, что у вас есть две коллекции, не содержащие дубликатов:
std::vector<T*> previous;
std::vector<T*> current;
Существует ли элегантный способ разделить эти две коллекции на три коллекции, содержащие одинаковые элементы в обеих, элементы в текущий , который не был в предыдущий и элементы, которые были в предыдущий , которых нет в текущий ?В результате:
std::vector<T*> removed;
std::vector<T*> same;
std::vector<T*> inserted;
Может быть, есть функция std :: function, которая делает это?
EDIT:
Коллекции могут быть отсортированы, но так как они являются коллекциями указателейпо какой метрике, кроме значения их адреса?
Коллекции не должны содержать дубликатов.