VA
Size: a a a
VA
VA
RM
RM
RM
VA
RM
VA
VA
VA
VA
p
VA
VA
I
O
template<typename K, typename V>
const V& value(std::pair<K, V> const& p) {
return p.second;
}
template<typename T>
const T& value(T const& p) {
return p;
}
template <typename T1, typename T2>
std::vector<T2> removeUnpaired(std::map<T1, T2>& map, std::vector<T2>& vec)
{
std::vector<T2> result;
std::sort(vec.begin(), vec.end());
std::set_intersection
(
vec.cbegin(),
vec.cend(),
map.cbegin(),
map.cend(),
std::back_inserter(result),
[](auto const& lhs, auto const& rhs)
{
return value(lhs) == value(rhs);
}
);
return result;
}O
VA