diff --git a/RTCP/Cobalt/InputProc/src/Transpose/MapUtil.h b/RTCP/Cobalt/InputProc/src/Transpose/MapUtil.h index a4cba51eebcb9260ca351bbf72f4c40d0d51580a..8c9db6b0b6406f31fc0a5fa6417fa03a0bc076ef 100644 --- a/RTCP/Cobalt/InputProc/src/Transpose/MapUtil.h +++ b/RTCP/Cobalt/InputProc/src/Transpose/MapUtil.h @@ -24,6 +24,21 @@ namespace LOFAR { return keys; } + // Returns the keys of an std::map, for non-empty elements + template<typename K, typename V> + std::vector<K> keys_nonempty( const std::map<K, std::vector<V> > &m ) + { + std::vector<K> keys; + + keys.reserve(m.size()); + for (typename std::map<K, std::vector<V> >::const_iterator i = m.begin(); i != m.end(); ++i) { + if (!i->second.empty()) + keys.push_back(i->first); + } + + return keys; + } + // Returns the set of unique values of an std::map. template<typename K, typename V>