STL_set——set::insert

Reference:
Inserts an element or a range of elements into a set.

Function:
pair <iterator, bool> insert(
   const value_type& _Val
);
iterator insert(
   iterator _Where,
   const value_type& _Val
);
template<class InputIterator>
   void insert(
      InputIterator _First,
      InputIterator _Last
   );
   
Parameters:
_Val:The value of an element to be inserted into the set unless the set already contains that element or, more generally, an element whose key is equivalently ordered.
_Where:The place to start searching for the correct point of insertion. (Insertion can occur in amortized constant time, instead of logarithmic time, if the insertion point immediately follows _Where.)
_First:The position of the first element to be copied from a set.
_Last:The position just beyond the last element to be copied from a set.

Return Values:
The first insert member function returns a pair whose bool component returns true if an insertion was make and false if the set already contained an element whose key had an equivalent value in the ordering, and whose iterator component returns the address where a new element was inserted or where the element was already located.
To access the iterator component of a pair pr returned by this member function, use pr.first, and to dereference it, use *(pr.first). To access the bool component of a pair pr returned by this member function, use pr.second, and to dereference it, use *(pr.second).
The second insert member function returns an iterator that points to the position where the new element was inserted into the set.

Remarks:
The third member function inserts the sequence of element values into a set corresponding to each element addressed by an iterator of in the range [_First, _Last) of a specified set.

Example:
#include <set>
#include <iostream>

int main( )
{
   using namespace std;
   set <int>::iterator s1_pIter, s2_pIter;

   set <int, less<int> > s1, s2;
   s1.insert( 10 );
   s1.insert( 20 );
   s1.insert( 30 );
   s1.insert( 40 );

   cout << "The original s1 =";
   for ( s1_pIter = s1.begin( ); s1_pIter != s1.end( ); s1_pIter++ )
      cout << " " << *s1_pIter;
   cout << "." << endl;

   pair< set<int>::iterator, bool > pr;
   pr = s1.insert( 10 );

   if(pr.second == true)   
   {
      cout << "The element 10 was inserted in s1 successfully."
           << endl;
   }
   else   
   {
      cout << "The element 10 already exists in s1 and"
           << " *( pr.first ) = " << *( pr.first ) << "." << endl;
   }

   s1.insert( --s1.end( ), 50 );

   cout << "After the insertions, s1 =";
   for ( s1_pIter = s1.begin( ); s1_pIter != s1.end( ); s1_pIter++ )
      cout << " " << *s1_pIter;
   cout << "." << endl;

   s2.insert( 100 );
   s2.insert( ++s1.begin( ), --s1.end( ) );

   cout << "s2 =";
   for ( s2_pIter = s2.begin( ); s2_pIter != s2.end( ); s2_pIter++ )
      cout << " " << *s2_pIter;
   cout << "." << endl;
}

Output:
The original s1 = 10 20 30 40.
The element 10 already exists in s1 and *( pr.first ) = 10.
After the insertions, s1 = 10 20 30 40 50.
s2 = 20 30 40 100.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值