在本文中,我们将学习Maps和Unordered Maps中的try_emplace方法。此方法是在C++ 17(即gcc 9.1)版本中添加的。提出的这个新函数的行为与emplace()相似,但是具有一个优点,即如果密钥已经存在,它将不会构造与该密钥关联的对象。万一创建这种类型的对象的成本很高,这将提高性能。
头文件:
#include
句法:
map_name.try_emplace(key, element);
参数:该函数接受两个强制性参数,如下所述:
- 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现场课程》和《 Geeks现场课程美国》。