función multiset insert() en C++ STL

El multiset::insert() es una función integrada en C++ STL que inserta elementos en el contenedor de multiset o inserta los elementos de una posición a otra posición de un multiset a un multiset diferente. 

  • Sintaxis: 
iterator multiset_name.insert(element)

Complejidad de tiempo: O (log n)

Dado que los elementos siempre están ordenados, los elementos recién insertados deben agregarse a su lugar de orden ordenado y para encontrar la posición exacta del nuevo elemento, se realiza una búsqueda binaria internamente. Por lo tanto, la búsqueda binaria tarda log n tiempo para encontrar la posición para insertar. Por lo tanto, la complejidad del tiempo de inserción general es O (log n).

Parámetros: la función acepta un elemento de parámetro obligatorio que debe insertarse en el contenedor de conjuntos múltiples. 

Valor de retorno: la función devuelve un iterador que apunta al elemento insertado en el contenedor de conjuntos múltiples. 

El siguiente programa ilustra la función anterior: 

C++

// 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;
}
Producción: 

The elements in multiset are: 1 1 1 4 5

 

  • Sintaxis: 
iterator multiset_name.insert(iterator position, element)

Parámetros: La función acepta dos parámetros que se describen a continuación: 

  • element: Especifica el elemento a insertar en el contenedor multiset.
  • posición: No especifica la posición donde se va a realizar la inserción, solo apunta a una posición desde donde se va a iniciar la operación de búsqueda de inserción para agilizar el proceso. La inserción se realiza según el orden que sigue el contenedor multiset.

Valor de retorno: la función devuelve un iterador que apunta al elemento insertado en el contenedor de conjuntos múltiples.

El siguiente programa ilustra la función anterior:

C++

// 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;
}

Producción:

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

Parámetros: La función acepta dos parámetros position1 y position2 que especifican el rango de elementos. Todos los elementos del rango [posición 1, último] se insertan en otro contenedor de conjuntos. 

Valor de retorno: la función devuelve un conjunto múltiple que tiene todos los elementos en el rango [posición 1, último]. 

El siguiente programa ilustra la función anterior: 

C++

// 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;
}
Producción: 

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

 

Publicación traducida automáticamente

Artículo escrito por gopaldave y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *