次の方法で共有


hash_multiset::insert

[!メモ]

この API は、互換性のために残されています。代わりに unordered_multiset クラスです。

hash_multisetに要素または要素範囲を挿入します。

iterator insert(
   const value_type& _Val
);
iterator insert(
   iterator _Where,
   const value_type& _Val
);
template<class InputIterator>
   void insert(
      InputIterator _First,
      InputIterator _Last
   );
template<class ValTy>
    iterator insert(
        ValTy&& _Val
);
template<class ValTy>
    iterator insert(
        const_iterator _Where,
        ValTy&& _Val
);

パラメーター

パラメーター

説明

_Val

hash_multisetが既にその要素をか、キーが同じで並べる要素をよりよくある場合hash_multisetに挿入する要素の値。

_Where

挿入の正しいポイントの検索を開始する位置。(挿入に対数の時間ではなく償却定数時間で挿入位置がの _Whereに従うと、生成される場合があります)。

_First

hash_multisetからコピーする最初の要素の位置。

_Last

hash_multisetコピー元の最後の要素だけを越える位置。

戻り値

最初の2 insert のメンバー関数は新しい要素が挿入された位置を指す反復子。

最後の2回の insert のメンバー関数は最初の2と同じように動作しますが、構成要素値を挿入します。

解説

挿入は対数の時間ではなく、挿入のツールヒントのバージョンの経費償却定数時間で挿入位置がの _Whereする場合は、発生することがあります。

3番目のメンバー関数は、指定hash_multisetの範囲[_First、_Last) の反復子によってアドレス各要素に対応するhash_multisetに要素値のシーケンスを挿入します。

使用例

// hash_multiset_insert.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>

int main( )
{
   using namespace std;
   using namespace stdext;
   hash_multiset <int>::iterator hms1_pIter, hms2_pIter;

   hash_multiset <int, hash_compare <int, less<int> > > hms1, hms2;
   hms1.insert( 10 );
   hms1.insert( 20 );
   hms1.insert( 30 );
   hms1.insert( 40 );

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


   hms1.insert( 20 );
   hms1.insert( --hms1.end( ), 50 );

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

   hms2.insert( 100 );
   hms2.insert( ++hms1.begin( ), --hms1.end( ) );

   cout << "hms2 =";
   for ( hms2_pIter = hms2.begin( ); hms2_pIter != hms2.end( );
         hms2_pIter++ )
      cout << " " << *hms2_pIter;
   cout << "." << endl;

   // move construct an element
   hash_multiset<string> hms3, hms4;
   string str1("a"), str2("b");

   hms3.insert(move(str1));
   cout << "After the move insertion, hms3 contains "
      << *hms3.begin() << "." << endl;

   hms4.insert(hms4.begin(), move(str1));
   cout << "After the move insertion, hms4 contains "
      << *hms4.begin() << "." << endl;
}
  
  
  
  
  

必要条件

ヘッダー: <hash_set>

名前空間: のstdext

参照

関連項目

hash_multiset Class

標準テンプレート ライブラリ