based on your code, list_map consists of only one pair ("key" -> pair_list). Hence, the only value corresponding to "key" is the pair_list. If I right understood, what you need is the range created by two iterators being results of std::equal_range algorithm. Then iterating through this range you'll find all the values with the specific key.