hash_set::emplace_hint
Inserts an element constructed in place into a hash_set.
template<class ValTy>
iterator emplace(
const_iterator _Where,
ValTy&& _Val
);
Parameters
Parameter |
Description |
_Val |
The value of an element to be inserted into the hash_set Class unless the hash_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.) |
Return Value
The hash_set::emplace member function returns an iterator that points to the position where the new element was inserted into the hash_set, or where the existing element with equivalent ordering is located.
Remarks
Insertion can occur in amortized constant time, instead of logarithmic time, if the insertion point immediately follows _Where.
In 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_set_emplace_hint.cpp
// compile with: /EHsc
#include <hash_set>
#include <iostream>
#include <string>
int main( )
{
using namespace std;
using namespace stdext;
hash_set<string> hs3;
string str1("a");
hs3.insert(hs3.begin(), move(str1));
cout << "After the emplace insertion, hs3 contains "
<< *hs3.begin() << "." << endl;
}
After the emplace insertion, hs3 contains a.
Requirements
Header: <hash_set>
Namespace: stdext