设置检测插入失败

新手上路,请多包涵

有没有一种简单的方法来检测由于被插入的项目已经存在于集合中而没有发生集合插入?例如,我想向用户显示一条显示插入失败的消息,以便他们可以更轻松地查找和删除数据中的重复项。这是一些伪代码来演示我想做的事情:

 try
{
   items.insert(item)
}

catch insert_failed_item_already_in_set
{
   // show user the failed item
}

原文由 01100110 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 263
2 个回答

有这个 insert 签名在 std::set

pair<iterator,bool> insert ( const value_type& x );

测试返回的对的 second ,如果插入成功应该设置为true。

原文由 Nim 发布,翻译遵循 CC BY-SA 3.0 许可协议

set::insert 的签名是:

 pair<iterator,bool> insert ( const value_type& x );

因此,您的代码如下所示:

 if( !items.insert(item).second )
{
    show user the failed item
}

原文由 Robᵩ 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题