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; }
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; }
The elements in multiset1 are: 1 1 1 3 4 5 The elements in multiset2 are: 3 4 5