插入时的位置 std::map

Position when inserting in std::map

我有一个方法可以在 std::map 中插入一对。 地图类似于 (0, value0), (3, value3), (8, value8) ... 所以当我插入时我需要指定整数值。 我的问题是,如果我有: (0, value0), (3, value3) 并且我想插入 (5, value5),其中 value3 与 value5 相同,不能插入对 (5, value5)。 我如何检查我的元素应该去的位置的前一个位置不具有相同的值? 到目前为止,我已经尝试插入对,获取迭代器,检查先前的值并在需要时删除插入的值。但我发现这种解决方案有点难看。 有任何想法吗? 提前致谢

Map 的lower_bound 函数将return 指向第一个位置大于或等于您给它的位置的元素的迭代器;然后你可以回去一个。 (小心,以防你已经开始了。)

http://en.cppreference.com/w/cpp/container/map/lower_bound