6
我有一個std::multimap
,我想從equal_range
創建一個boost::iterator_range
。我發現在文檔中做的沒有簡單的方法,所以我嘗試了以下內容:將std :: iterator對轉換爲boost :: iterator_range
typedef std::multimap<int, std::string> Map;
Map map;
...
boost::iterator_range<Map::iterator> r(map.equal_range(2));
出人意料的是,它的工作原理(使用GCC 4.1.2)。我很好奇它是如何工作的。我發現iterator_range
構造函數沒有超載,而multimap::iterator_range
顯然沒有超載,會返回Boost範圍。
請注意,還有'boost :: make_iterator_range'從對中推導出基礎迭代器類型。 – alfC 2016-05-27 04:35:31