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.