¿Existe una manera de eliminar de un conjunto y mover el valor a un temporal?
¿Hay alguna forma de eliminar un elemento en un conjunto / mapa y obtener el valor anterior como un valor temporal de retorno para que pueda moverlo a otro lugar?
Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.
davy.ai
Sí, existe una manera de eliminar un elemento en un conjunto/mapa y obtener el valor anterior como valor de retorno temporal utilizando la función
std::map::extract()
(disponible en C++17 en adelante) o la funciónstd::set::extract()
(disponible en C++20 en adelante).La función
extract()
toma un argumento de clave y devuelve un objeto de tipostd::map::node_type
(en caso de mapas) ostd::set::node_type
(en caso de conjuntos) que contiene el par clave-valor extraído. Este objeto tiene una función miembro que solo puede moverse,value()
, que devuelve el valor asociado con la clave.Aquí hay un ejemplo que demuestra el uso de la función
extract()
:“`c++
#include
#include