📜  C++ STL-multimap.emplace()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.975000             🧑  作者: Mango

C++ STL-multimap.emplace()函数

在STL中,multimap是一个允许元素有重复键值的关联容器。emplace()函数是multimap中一个用于在容器中插入元素的函数。它与insert()函数的不同之处在于,emplace()函数不需要创建临时对象,而是直接在容器中构造元素。

语法

multimap.emplace(key, value);

  • key: 元素关键字;
  • value: 元素值。
返回值

无。

例子

下面是一个使用multimap.emplace()函数的例子:

#include <iostream>
#include <map>

using namespace std;

int main()
{
    multimap<int, string> myMap;

    // 使用emplace函数插入元素
    myMap.emplace(1, "apple");
    myMap.emplace(1, "banana");
    myMap.emplace(2, "orange");
    myMap.emplace(3, "kiwi");

    // 打印multimap中元素
    for (auto it = myMap.begin(); it != myMap.end(); ++it)
    {
        cout << it->first << " " << it->second << endl;
    }

    return 0;
}

输出:

1 apple
1 banana
2 orange
3 kiwi
注意事项
  • multimap中允许有重复的键值,因此emplace()函数可以插入重复元素;
  • emplace()函数可以直接在容器中构造元素,相较于insert()函数,效率更高;
  • emplace()函数根据元素关键字进行排序,因此multimap中的所有元素都是有序的;
  • 插入元素时,emplace()函数会返回一个迭代器,指向新插入的元素。但由于multimap中允许有重复元素,因此这个迭代器可能指向最后一个具有相同键值的元素之后的位置。