在本文中,我们将学习 Maps 和 Unordered Maps 中的 try_emplace 方法。这个方法是在C++17(即gcc 9.1)版本中添加的。提议的这个新函数的行为与 emplace() 类似,但有一个优点,即如果键已经存在,它不会构造与键关联的对象。如果创建该类型的对象成本高昂,这将提高性能。
头文件:
#include
句法:
map_name.try_emplace(key, element);
参数:该函数接受两个强制性参数,如下所述:
- key:指定要插入到multimap容器中的key。
- element:它指定要插入到地图容器中的键的元素。
返回值:该函数不返回任何内容。
下面是在 C++ 中说明try_emplace()的程序:
// C++ program for the illustration of
// map::try_emplace() function in map
#include
using namespace std;
// Driver Code
int main()
{
// Initializing a container
map m;
// Inserting elements in random order
m.try_emplace("a", "123");
m.try_emplace("b", "456");
m.try_emplace("a", "Won't be inserted");
m.try_emplace("c", "789");
m.try_emplace("c", "Won't be inserted");
// Print the elements
cout << "\nThe map is : \n";
cout << "KEY\tELEMENT\n";
for (auto p : m) {
cout << p.first << "\t"
<< p.second
<< endl;
}
return 0;
}
输出:
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live