由于set / map的emplace_hint
方法仅返回迭代器,确定是否实际添加了项目不如使用emplace
或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...
}
它可以被包装成一个辅助返回对,但也许有一个现有的更简单的方法?
答案 0 :(得分:1)
鉴于map::size
是O(1)(按照标准),我相信这种方法(尤其是模仿map::emplace
返回的助手)是合理的。