c++ - son - ¿Cómo tratar std:: pair como dos variables separadas?
solucion de una ecuacion diferencial (2)
Hay algunas funciones en la biblioteca estándar, como std::map::insert
, que devuelven un std::pair
. A veces sería conveniente tener que rellenar dos variables diferentes correspondientes a las mitades del par. ¿Hay una manera fácil de hacer eso?
std::map<int,int>::iterator it;
bool b;
magic(it, b) = mymap.insert(std::make_pair(42, 1));
Estoy buscando la magic
aquí.
En C ++ 03, debes escribir así:
std::pair< map<int, int>::iterator, bool > res = mymap.insert(std::make_pair(42, 1));
std::tie
desde el encabezado <tuple>
es lo que quieres.
std::tie(it, b) = mymap.insert(std::make_pair(42, 1));
" magic
" :)
Nota: Esta es una característica de C ++ 11.