使用emplace_hint时确定是否添加了项目

时间:2017-12-23 21:35:13

标签: c++ c++11 emplace

由于set / map的emplace_hint方法仅返回迭代器,确定是否实际添加了项目不如使用emplaceinsert时那么方便。现在我只是在前/后获得容器大小并比较它们:

::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...
}

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

1 个答案:

答案 0 :(得分:1)

鉴于map::size是O(1)(按照标准),我相信这种方法(尤其是模仿map::emplace返回的助手)是合理的。