std::set::insert

From cppreference.com
std::pair<iterator,bool> insert( const value_type& value );
(1)
std::pair<iterator, bool> insert( value_type&& value );
(2) (since C++11)
iterator insert( iterator hint, const value_type& value );
iterator insert( const_iterator hint, const value_type& value );
(3) (until C++11)
(since C++11)
iterator insert( const_iterator hint, value_type&& value );
(4) (since C++11)
template <class InputIterator>
void insert( InputIterator first, InputIterator last );
(5)
void insert( std::initializer_list<value_type> ilist );
(6) (since C++11)

Inserts element(s) to the container, if the container doesn't already contain an element with equivalent key.

1-2) inserts value.

3-4) inserts value in the position as close as possible, just prior(since C++11), to hint.

5) inserts elements from range [first, last).

6) inserts elements from initializer list ilist.

No iterators or references are invalidated.

Contents

[edit] Parameters

hint - iterator, used as a suggestion as to where to insert the content
value - element value to insert
first, last - range of elements to insert
ilist - initializer list to insert the values from

[edit] Return value

1-2) returns a pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.

3-4) returns an iterator to the inserted element, or to the element that prevented the insertion.

5-6) none.

[edit] Complexity

1-2) Logarithmic in the size of the container, O(log(size())).

3-4) Amortized constant if the insertion happens in the position just after(until C++11)/before(since C++11) the hint, logarithmic in the size of the container otherwise.

5-6) O(N*log(size() + N)), where N is the number of elements to insert.

[edit] See also

(C++11)
constructs element in-place
(public member function)
(C++11)
constructs elements in-place using a hint
(public member function)