Tengo un std::multimap
, y quiero crear un boost::iterator_range
desde equal_range
. He encontrado hay una forma sencilla de hacerlo en la documentación, así que probé el siguiente:Convertir std :: par de iteradores para aumentar :: iterator_range
typedef std::multimap<int, std::string> Map;
Map map;
...
boost::iterator_range<Map::iterator> r(map.equal_range(2));
Sorprendentemente, funciona (usando GCC 4.1.2). Tengo curiosidad de cómo funciona. No encontré ninguna sobrecarga para el constructor iterator_range
que lo haría, y obviamente multimap::iterator_range
no tiene sobrecarga que pueda devolver los rangos de Boost.
Tenga en cuenta que también hay 'boost :: make_iterator_range' que deduce el tipo de iterador subyacente del par. – alfC