📅  最后修改于: 2023-12-03 15:13:55.567000             🧑  作者: Mango
C++ STL (Standard Template Library)是一组经过严格设计的C++库,其中包含了多种常用的数据结构和算法。其中,map是一种基于红黑树实现的有序映射结构,每个元素都由一个键值对(key-value pair)组成。
map.emplace()函数是STL中一个用于向map中插入元素的函数,其作用等价于map.insert(make_pair(key, value)),但由于emplace()函数会将参数直接构造在容器中,因此可以避免不必要的内存开销。
map.emplace(args...)
参数args...表示构造键值对所需的参数,具体取决于map中存储的类型。例如,如果map存储的是int和string类型的键值对,则args...应为一个整数和一个字符串。
下面是一个简单的例子,其中我们创建了一个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
这篇介绍了C++ STL中map.emplace()函数的基本用法,以及一些示例代码。该函数可以方便地向map中插入元素,避免了不必要的内存开销,因此在实际应用中非常常见。