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

📅  最后修改于: 2023-12-03 15:13:55.567000             🧑  作者: Mango

C++ STL-map.emplace()函数介绍

1. 简介

C++ STL (Standard Template Library)是一组经过严格设计的C++库,其中包含了多种常用的数据结构和算法。其中,map是一种基于红黑树实现的有序映射结构,每个元素都由一个键值对(key-value pair)组成。

map.emplace()函数是STL中一个用于向map中插入元素的函数,其作用等价于map.insert(make_pair(key, value)),但由于emplace()函数会将参数直接构造在容器中,因此可以避免不必要的内存开销。

2. 语法

map.emplace(args...)

参数args...表示构造键值对所需的参数,具体取决于map中存储的类型。例如,如果map存储的是int和string类型的键值对,则args...应为一个整数和一个字符串。

3. 示例

下面是一个简单的例子,其中我们创建了一个map对象,然后使用emplace函数向其中插入若干个键值对。

#include <iostream>
#include <map>

using namespace std;

int main() {
    // 创建一个map对象
    map<int, string> myMap;

    // 使用emplace函数插入键值对
    myMap.emplace(1, "Apple");
    myMap.emplace(2, "Banana");
    myMap.emplace(3, "Orange");

    // 遍历map中的元素并输出
    for (auto& p : myMap) {
        cout << "Key: " << p.first << ", Value: " << p.second << endl;
    }

    return 0;
}

运行上述程序,得到以下输出:

Key: 1, Value: Apple
Key: 2, Value: Banana
Key: 3, Value: Orange
4. 结语

这篇介绍了C++ STL中map.emplace()函数的基本用法,以及一些示例代码。该函数可以方便地向map中插入元素,避免了不必要的内存开销,因此在实际应用中非常常见。