multimap::insert
插入元素或某個範圍合併至 multimap。
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 |
要插入之項目的值。multimap,除非 multimap,一般而言,已包含該項目或索引鍵相當於已排序的項目。 |
_Where |
如需這個位置開始的提示下搜尋修正問題的外掛程式。 |
_First |
從對應會複製的第一個項目的位置。 |
_Last |
位置是從對應會複製的最後一個項目之外。 |
傳回值
insert 成員函式傳回 Iterator 指向新的元素插入至 multimap 位置的點。
備註
項目的 value_type 為,因此,項目的值將會與第一個元件相等於這個機碼值和秒數的排序配對等於項目之資料值。
如果插入點後面緊接著 _Where,插入至插入的提示版本會讓舊的常數時間可能發生,而非對數時間。
第三 + 成成員函式插入項目值序列對應與範圍 [_First, _Last) 的 Iterator 定址的每個項目都會對應到一個指定的集合。
最後兩個成員函式一般作業的前兩個相同,但是有一點例外,就是 _Val 用來建構要插入的值。
範例
// multimap_insert.cpp
// compile with: /EHsc
#include <map>
#include <iostream>
#include <string>
int main( )
{
using namespace std;
multimap <int, int>::iterator m1_pIter, m2_pIter;
multimap <int, int> m1, m2;
typedef pair <int, int> Int_Pair;
m1.insert ( Int_Pair ( 1, 10 ) );
m1.insert ( Int_Pair ( 2, 20 ) );
m1.insert ( Int_Pair ( 3, 30 ) );
cout << "The original key values of m1 =";
for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
cout << " " << m1_pIter -> first;
cout << "." << endl;
cout << "The original mapped values of m1 =";
for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
cout << " " << m1_pIter -> second;
cout << "." << endl;
m1.insert ( Int_Pair ( 1, 10 ) );
// The hint version of insert
m1.insert( --m1.end( ), Int_Pair ( 4, 40 ) );
cout << "After the insertions, the key values of m1 =";
for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
cout << " " << m1_pIter -> first;
cout << "," << endl;
cout << " and the mapped values of m1 =";
for ( m1_pIter = m1.begin( ); m1_pIter != m1.end( ); m1_pIter++ )
cout << " " << m1_pIter -> second;
cout << "." << endl;
m2.insert ( Int_Pair ( 10, 100 ) );
// The templatized version inserting a range
m2.insert( ++m1.begin( ), --m1.end( ) );
cout << "After the insertions, the key values of m2 =";
for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
cout << " " << m2_pIter -> first;
cout << "," << endl;
cout << " and the mapped values of m2 =";
for ( m2_pIter = m2.begin( ); m2_pIter != m2.end( ); m2_pIter++ )
cout << " " << m2_pIter -> second;
cout << "." << endl;
// The templatized versions move constructing elements
multimap<int, string> m3, m4;
pair<int, string> is1(1, "a"), is2(2, "b");
m3.insert(move(is1));
cout << "After the move insertion, m3 contains:" << endl
<< " " << m3.begin()->first
<< " => " << m3.begin()->second
<< endl;
m4.insert(c4.begin(),move(is2));
cout << "After the move insertion, m4 contains:" << endl
<< " " << m4.begin()->first
<< " => " << m4.begin()->second
<< endl;
}
需求
標題: <map>
命名空間: std