C++ STL中的multiset insert()函数

C++ STL中的multiset insert()函数

multiset::insert() 是C++ STL中的内置函数,用于在multiset容器中插入元素或从一个multiset的位置将元素插入到另一个multiset中。

  • 语法:
iterator multiset_name.insert(element)

时间复杂度:O(log n)

由于元素总是按排序顺序排列的,新插入的元素应添加到它的排序顺序的位置,并且为了查找新元素的确切位置,内部执行二进制搜索。因此,二进制搜索需要log n时间来查找要插入的位置。从而使整体插入时间复杂度为O(log n)。

参数: 该函数接受一个强制性参数 element ,即要插入multiset容器中的元素。

返回值: 该函数返回一个迭代器,指向multiset容器中插入的元素。

下面的程序说明了上述功能:

// C++ program to demonstrate the
// multiset::insert(element) function
#include <bits/stdc++.h>
using namespace std;
int main()
{
 
    multiset<int> s;
 
    // Function to insert elements
    // in the set container
    s.insert(1);
    s.insert(4);
    s.insert(1);
    s.insert(5);
    s.insert(1);
 
    cout << "The elements in multiset are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}

输出:

The elements in multiset are: 1 1 1 4 5
  • 语法:
iterator multiset_name.insert(iterator position, element)

参数: 该函数接受两个参数,如下所述:

  • element: 它指定要插入multiset容器中的元素。
  • position: 它不指定插入的位置,它仅从一个位置指向,可以从这个位置开始搜索插入,以使过程更快。插入按照multiset容器遵循的顺序进行。

返回值: 该函数返回一个迭代器,指向multiset容器中插入的元素。

下面的程序说明了上述功能:

// C++ program to demonstrate the
// multiset::insert(iterator, element) function
#include <bits/stdc++.h>
using namespace std;
int main()
{
 
    multiset<int> s;
 
    // Function to insert elements
    // in the set container
    auto itr = s.insert(s.begin(), 1);
 
    // the time taken to insertion
    // is very less as the correct
    // position for insertion is given
    itr = s.insert(itr, 4);
    itr = s.insert(itr, 1);
    itr = s.insert(itr, 5);
 
    // Slow insertion as position is
    // not given correctly
    itr = s.insert(s.begin(), 3);
 
    cout << "The elements in multiset are: ";
    for(auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}

输出:

The elements in multiset are: 1 1 3 4 5
  • 语法:
iterator multiset_name.insert(iterator position1, iterator position2)

参数: 该函数接受两个参数 position1position2 指定元素的范围。范围内的所有元素[position1,last)都将插入另一个集合容器中。

返回值: 该函数返回一个多重集合,其中包含范围[position1,last)内的所有元素。

以下程序说明了上述函数:

// C++ program to demonstrate the
// multiset::insert(iteratorposition1, iteratorposition2) function
#include <bits/stdc++.h>
using namespace std;
int main()
{
 
    multiset<int> s1;
 
    // Function to insert elements
    // in the set container
    s1.insert(1);
    s1.insert(4);
    s1.insert(1);
    s1.insert(5);
    s1.insert(1);
    s1.insert(3);
 
    cout << "The elements in multiset1 are: ";
    for (auto it = s1.begin(); it != s1.end(); it++)
        cout << *it << " ";
 
    multiset<int> s2;
 
    // Function to insert one multiset to another
    // all elements from where 3 is to end is
    // inserted to multiset2
    s2.insert(s1.find(3), s1.end());
 
    cout << "\nThe elements in multiset2 are: ";
    for (auto it = s2.begin(); it != s2.end(); it++)
        cout << *it << " ";
 
    return 0;
}

输出:

The elements in multiset1 are: 1 1 1 3 4 5 
The elements in multiset2 are: 3 4 5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程