📜  C++ STL中的map insert()(1)

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

C++ STL中的map insert()

在 C++ STL 中,map 是一个非常有用的容器。它提供了对于键值对的快速访问,并允许开发者用许多不同的方式来访问它们。其中 insert() 函数就是 map 中的一个非常基础但是又非常常用的函数。本文将会介绍 insert() 函数的使用方法。

insert() 函数的基本用法

map 中的 insert() 函数可以向容器中插入键值对。它包含两个参数,第一个参数是键,第二个参数是值。在插入之前,insert() 函数会检查 map 中是否已经存在该键。如果存在,它将不插入并返回该键所对应的值。如果不存在,则插入新的键值对并返回 map::iterator 迭代器。

下面是一个示例:

#include <iostream>
#include <map>

int main()
{
    std::map<std::string, int> myMap;

    myMap.insert(std::pair<std::string, int>("apple", 3));
    myMap.insert(std::make_pair("orange", 7));
    myMap.insert(std::map<std::string, int>::value_type("banana", 5));

    std::cout << "myMap contains:\n";
    for (auto pair : myMap)
    {
        std::cout << pair.first << " => " << pair.second << '\n';
    }

    return 0;
}

以上代码会输出以下结果:

myMap contains:
apple => 3
banana => 5
orange => 7

在以上示例中,我们创建了一个 std::map<std::string, int> 对象 myMap,并使用 insert() 函数插入了三组键值对。每次 insert() 函数的调用都分别使用了不同的方法来插入新数据。

insert() 函数的高级用法

除了基础用法之外,insert() 函数还提供了一些比较高级的用法。下面是一个使用 insert() 函数从另一个 map 中复制数据的示例:

#include <iostream>
#include <map>

int main()
{
    std::map<int, int> myMap1 {{1, 2}, {3, 4}, {5, 6}};

    std::map<int, int> myMap2;
    myMap2.insert(myMap1.begin(), myMap1.end());

    std::cout << "myMap2 contains:\n";
    for (auto pair : myMap2)
    {
        std::cout << pair.first << " => " << pair.second << '\n';
    }

    return 0;
}

以上代码会输出以下结果:

myMap2 contains:
1 => 2
3 => 4
5 => 6

在以上示例中,我们创建了一个 std::map<int, int> 对象 myMap1,并使用花括号初始化列表插入了三组键值对。然后,我们初始化了一个空的 map 对象 myMap2,并通过使用 insert() 函数并传入另一个 map 对象的 begin()end() 迭代器来实现了数据的复制。

总结

本文介绍了 map 中的 insert() 函数的基本用法,以及一些比较高级的用法。insert() 函数是一个非常实用的函数,常常被用来在 map 中插入新的键值对。我们希望本文对你有所帮助。