hash_map::emplace
![]() |
---|
Этот API устарел.Альтернативы unordered_map Class. |
Вставляет элемент в hash_map, построенный на месте.
template<class ValTy>
pair <iterator, bool> emplace(
ValTy&& _Val
);
Параметры
Параметр |
Описание |
_Val |
Значение, используемое для перемещения конструкция элемент, вставляемый в hash_map Class если hash_map уже не будет содержать один элемент (или более общем случае элемент, ключ которого соответствует упорядочен). |
Возвращаемое значение
Функция-член emplace возвращает пару которой компонент bool возвращает значение true, если вставка была выполнена и ложна, если hash_map уже содержит элемент, ключ которого имеет подходящего значения в упорядочение и которого компонент итератора возвращает адрес, куда был вставлен новый элемент или где элемент уже был найден.
Доступ к компоненту итератора пары pr, возвращенные этим функцией-членом, использующих pr.first и разыменовать его использование *(pr.first).Доступ к компоненту bool пары pr, возвращенные этим функцией-членом, использующих pr.second и разыменовать его использование *(pr.second).
Заметки
hash_map::value_type элемента пары, так как значение элемента упорядоченной ключом с первым компонентом равно значению ключа и вторым компонентом равно значению данных элемента.
Начинайте с Visual C++ .NET 2003 элементами <hash_map> и файлами заголовков <hash_set> больше не находятся в пространстве имен std, но скорее перейти на пространство имен stdext.Дополнительные сведения см. в разделе Пространство имен stdext.
Пример
// hash_map_emplace.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(move(is1));
cout << "After the emplace insertion, hm1 contains:" << endl
<< " " << hm1.begin()->first
<< " => " << hm1.begin()->second
<< endl;
}
Требования
заголовок: <hash_map>
Stdext пространство имен: