c++setstdset

Set detect insertion failure


Is there a simple way to detect when a set insert does not occur because the item being inserted already exists in the set? For example, I'd like to display a message to the user that shows the insert failure so that they can find and remove the duplicates in their data more easily. Here's some pseudo code to demonstrate what I'd like to do:

try
{
   items.insert(item)
}

catch insert_failed_item_already_in_set
{
   // show user the failed item
}

Solution

  • There is this insert signature in std::set

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

    Test the second of the returned pair, should be set to true if inserted successfully.