Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set detect insertion failure

Tags:

c++

set

stdset

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
}
like image 980
01100110 Avatar asked Mar 06 '12 15:03

01100110


People also ask

What is set Insert () second?

An insert operation on a set returns a pair, with its member first set to an iterator pointing to either the newly inserted element or to the equivalent element already in the set. The second element in the pair is set to true if a new element was inserted or false if an equivalent element already existed.

What does set insert return C++?

set insert() function in C++ STL Return Value: The function returns an iterator pointing to the inserted element in the container.


1 Answers

A signature for set::insert is:

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

So, your code would look like:

if( !items.insert(item).second )
{   
    show user the failed item
}
like image 53
Robᵩ Avatar answered Oct 29 '22 03:10

Robᵩ