在C ++ STL中映射emplace()

在本文中,我们将讨论C ++ STL中map::emplace()函数的工作原理,语法和示例。

什么是C ++ STL中的映射?

映射是关联容器,它有助于按特定顺序存储由键值和映射值的组合形成的元素。在映射容器中,数据始终在内部借助其关联的键进行排序。映射容器中的值通过其唯一键访问。

什么是map::emplace()?

map::emplace()是<map>头文件下的函数。此函数构造一个元素并将其插入关联的映射容器。

如果要放置的元素的键是唯一的,则emplace()插入新元素。仅当没有元素具有与要插入的值相同的键时,才会发生插入。此函数与insert()相同,后者将现有对象复制并移动到容器中。

如果成功插入元素,则容器的大小将增加1

语法

map_name.emplace(Args&& args);

参数

此函数接受以下参数-

args-我们要放置或插入的参数或值。

返回值

如果插入成功,则该函数返回指向插入的新元素的迭代器。否则,它将迭代器返回到容器中已经存在的等效值。

输入项

map<char, int> newmap;
emplace( ‘a’, 1);

输出结果

a

示例

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.emplace(4, 50);
   TP_Map.emplace(2, 30);
   TP_Map.emplace(1, 10);
   TP_Map.emplace(1, 20);
   TP_Map.emplace(1, 30);
   cout<<"TP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++)
      cout << i->first << "\t" << i->second << endl;
   return 0;
}

输出结果

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
4             50