Ich habe eine std::multimap
, und ich möchte eine boost::iterator_range
von equal_range
erstellen. Ich fand keine einfache Möglichkeit, es in der Dokumentation zu tun, also habe ich versucht die folgenden:Konvertieren std :: Paar Iteratoren zu boost :: iterator_range
typedef std::multimap<int, std::string> Map;
Map map;
...
boost::iterator_range<Map::iterator> r(map.equal_range(2));
Überraschenderweise funktioniert es (mit GCC 4.1.2). Ich bin gespannt wie es funktioniert. Ich fand keine Überlastung für iterator_range
Konstruktor, der es tun würde, und multimap::iterator_range
hat offensichtlich keine Überladung, die Boost-Bereiche zurückgeben würde.
Beachten Sie, dass es auch 'boost :: make_iterator_range' gibt, das den zugrunde liegenden Iteratortyp aus dem Paar ableitet. – alfC