📜  C ++ 17的地图和无序地图中的std :: try_emplace()

📅  最后修改于: 2021-06-01 01:23:40             🧑  作者: Mango

在本文中,我们将学习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现场课程美国》。