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

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

C++ STL - multimap.insert() 函数介绍

简介

在 C++ Standard Template Library (STL) 中,multimap 是一种关联容器,它允许存储多个具有相同关键字的值。multimap.insert() 函数用于将元素插入 multimap 容器中。

语法

下面是 multimap.insert() 函数的基本语法:

iterator insert (const value_type& val);
iterator insert (iterator position, const value_type& val);
template <class InputIterator>
  void insert (InputIterator first, InputIterator last);
参数
  • val:要插入的值。
  • position:迭代器,指向要插入位置之前的元素。
  • firstlast:迭代器对,指定要插入元素的范围。
返回类型
  • iterator:指向插入的元素的迭代器。
描述

multimap.insert() 函数主要用于向 multimap 容器中插入元素。根据插入元素的不同情况,multimap.insert() 函数有三种重载形式。

  1. 通过值插入:使用 insert (const value_type& val) 重载形式可以将一个具有关键字和值的元素插入到 multimap 容器中。
  2. 指定位置插入:使用 insert (iterator position, const value_type& val) 重载形式可以在指定位置之前插入一个元素。
  3. 迭代器范围插入:使用 insert (InputIterator first, InputIterator last) 重载形式可以插入一个迭代器范围内的一系列元素。

multimap.insert() 函数通过比较关键字来确定与之匹配的存储位置。由于 multimap 允许存储多个具有相同关键字的值,因此插入操作不会影响容器的排序顺序。

示例

下面是一些使用 multimap.insert() 函数的示例代码:

#include <iostream>
#include <map>

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

    // 通过值插入元素
    myMap.insert(std::make_pair(1, "One"));
    myMap.insert(std::make_pair(2, "Two"));
    myMap.insert(std::make_pair(3, "Three"));

    // 指定位置插入元素
    std::multimap<int, std::string>::iterator it = myMap.begin();
    myMap.insert(it, std::make_pair(4, "Four"));
    it++; // 移动到下一个元素
    myMap.insert(it, std::make_pair(5, "Five"));

    // 迭代器范围插入元素
    std::map<int, std::string> anotherMap;
    anotherMap.insert(std::make_pair(6, "Six"));
    anotherMap.insert(std::make_pair(7, "Seven"));
    myMap.insert(anotherMap.begin(), anotherMap.end());

    // 打印 multimap 中的元素
    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

输出结果:

1: One
2: Two
3: Three
4: Four
5: Five
6: Six
7: Seven

在上面的示例中,我们使用不同的重载形式演示了 multimap.insert() 函数的用法。首先,我们通过值插入了一些元素。然后,我们指定了插入位置并在该位置之前插入了一些元素。最后,我们插入了一个迭代器范围内的一系列元素。

这是 multimap.insert() 函数的简要介绍。通过这个函数,我们可以方便地向 multimap 容器中插入元素,而无需关心元素的排序和关键字的重复性。