I use QHash as a container and I have a task to remove all items that satisfy the predicate. At first I thought to use the Erase-remove idiom it turned out that QHash has no option to delete the range, but only a function to delete a single element through the iterator.
std::unordered_map (which is conceptually close to the Qt's QHash) has the function of removing the range.
This implies a question: why QHash does not have a similar function and how to the best way remove items from the QHash satisfying the predicate?