1

由于emplace_hintset/map 的方法只返回一个迭代器来确定是否实际添加了 item 不如使用emplaceor时方便insert。现在我只是在之前/之后获取容器大小并比较它们:

::std::map<int, int> items{};
const auto initial_items_count{items.size()};
const auto it_item{items.emplace_hint(items.begin(), 0, 5)};
if(items.size() != initial_items_count)
{
    // perform additional actions...
}

它可以被包装成一个辅助返回对,但也许有一个现有的更简单的方法?

4

1 回答 1

1

鉴于这map::size是 O(1) (根据标准),我相信这种方法(尤其是使用模仿map::emplace' 回报的助手)是合理的。

于 2017-12-23T21:42:46.037 回答