T get_value(Key const& key, bool erase) { typename data_type::iterator it = partition_unordered_map_.find(key); if (it == partition_unordered_map_.end()) { HPX_THROW_EXCEPTION(bad_parameter, "partition_unordered_map::get_value", "unable to find requested key in this partition of the " "unordered_map"); } if (!erase) return it->second; erase_on_exit t(partition_unordered_map_, it); return it->second; }
/// Return the element at the position \a pos in the partition_unordered_map /// container. /// /// \param pos Positions of the elements in the partition_unordered_map /// /// \return Return the values of the elements at position represented /// by \a pos. /// std::vector<T> get_values(std::vector<Key> const& keys) { std::vector<T> result; result.reserve(keys.size()); for (std::size_t i = 0; i != keys.size(); ++i) { typename data_type::iterator it = partition_unordered_map_.find(keys[i]); if (it == partition_unordered_map_.end()) { HPX_THROW_EXCEPTION(bad_parameter, "partition_unordered_map::get_values", "unable to find requested key in this partition of the " "unordered_map"); break; } result.push_back(it->second); } return result; }