public IEnumerable <KeyValuePair <uint, uint> > EqualRange(uint key) { using (var begin = new Iterator()) using (var end = new Iterator()) { Invoke.std_multimap_uintanduint_equal_range(_ptr, key, begin, end); for (; !begin.Equals(end); begin.Increment()) { yield return(new KeyValuePair <uint, uint>(begin.Key, begin.Value)); } } }