El set::emplace_hint() es una función integrada en C++ STL que inserta un nuevo elemento en el conjunto. Se pasa una posición en el parámetro de la función que actúa como una pista desde donde comienza la operación de búsqueda antes de insertar el elemento en su posición actual. La posición solo ayuda a que el proceso sea más rápido, no decide dónde se insertará el nuevo elemento. El nuevo elemento se inserta siguiendo la propiedad del contenedor establecido únicamente.
Sintaxis:
set_name.emplace_hint(iterator position, value)
Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:
- posición: este parámetro actúa como una pista desde donde se realiza la operación de búsqueda antes de insertar el elemento en su posición actual. La posición solo ayuda a que el proceso sea más rápido, no decide dónde se va a insertar el nuevo elemento. El nuevo elemento se inserta siguiendo la propiedad del contenedor establecido únicamente.
- valor: Esto especifica el elemento a insertar en el contenedor del conjunto. El valor se inserta en el conjunto si no está presente antes.
Valor de retorno: la función devuelve un iterador que apunta a la posición donde se realiza la inserción. Si el elemento pasado en el parámetro ya existe, devuelve un iterador que apunta a la posición donde se encuentra el elemento existente.
El siguiente programa ilustra la función anterior.
// CPP program to demonstrate the // set::emplace_hint() function #include <bits/stdc++.h> using namespace std; int main() { set<int> s; auto it = s.emplace_hint(s.begin(), 1); // stores the position of 2's insertion it = s.emplace_hint(it, 2); // fast step as it directly // starts the search step from // position where 3 was last inserted s.emplace_hint(it, 3); // this is a slower step as // it starts checking from the // position where 3 was inserted // but 0 is to be inserted before 1 s.emplace_hint(it, 0); // prints the set elements for (auto it = s.begin(); it != s.end(); it++) cout << *it << " "; return 0; }
0 1 2 3