hash_map::emplace_hint
Note
This API is obsolete. The alternative is unordered_map Class.
Inserts an element constructed in place into a hash_map, with a placement hint.
template<class ValTy>
iterator emplace_hint(
const_iterator _Where,
ValTy&& _Val
);
Parameters
Parameter |
Description |
_Val |
The value used to move construct an element to be inserted into the hash_map Class unless the hash_map already contains that element (or, more generally, an element whose key is equivalently ordered). |
_Where |
A hint regarding the place to start searching for the correct point of insertion. |
Return Value
The hash_multimap::emplace member function returns an iterator that points to the position where the new element was inserted into the hash_map, or where the existing element with equivalent ordering is located.
Remarks
The hash_map::value_type of an element is a pair, so that the value of an element will be an ordered pair with the first component equal to the key value and the second component equal to the data value of the element.
Insertion can occur in amortized constant time, instead of logarithmic time, if the insertion point immediately follows _Where.
Beginning with Visual C++ .NET 2003, members of the <hash_map> and <hash_set> header files are no longer in the std namespace, but rather have been moved into the stdext namespace. See The stdext Namespace for more information.
Example
// hash_map_emplace_hint.cpp
// compile with: /EHsc
#include<hash_map>
#include<iostream>
#include <string>
int main()
{
using namespace std;
using namespace stdext;
hash_map<int, string> hm1;
typedef pair<int, string> is1(1, "a");
hm1.emplace(hm1.begin(), move(is1));
cout << "After the emplace, hm1 contains:" << endl
<< " " << hm1.begin()->first
<< " => " << hm1.begin()->second
<< endl;
}
After the emplace insertion, hm1 contains: 1 => a
Requirements
Header: <hash_map>
Namespace: stdext