void ElementSearch::updateUnion(const std::vector<std::size_t> &vec) { std::vector<std::size_t> vec_temp(vec.size() + _marked_elements.size()); auto it = std::set_union(vec.begin(), vec.end(), _marked_elements.begin(), _marked_elements.end(), vec_temp.begin()); vec_temp.resize(it - vec_temp.begin()); _marked_elements.assign(vec_temp.begin(), vec_temp.end()); }
void updateUnion(const std::vector<std::size_t> &vec1, std::vector<std::size_t> &vec2) { std::vector<std::size_t> vec_temp(vec1.size() + vec2.size()); auto it = std::set_union(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), vec_temp.begin()); vec_temp.resize(it - vec_temp.begin()); vec2.assign(vec_temp.begin(), vec_temp.end()); }