Should we use "template<typename InIter> void removeObjectsForKeys( InIter first , InIter last )" instead of "std::vector<K>"? 
Because the type of keys could be std::map , or std::list , and we don't want to copy them into a new vector.