我有这样一个二进制图像:
using MyBimap = boost::bimaps::bimap<
boost::bimaps::unordered_set_of<A>,
boost::bimaps::unordered_set_of<B>>;
我希望能够从静态初始化列表构建它,就像对于std::map
一样:
MyBimap map{{a1, b1}, {a2, b2}, {a3, b3}};
很不幸,它不起作用,因为bimap
不支持初始化列表,所以我尝试了一个解决方法。 Boost 的文档列出了以下构造函数:
bimap();
template< class InputIterator >
bimap(InputIterator first,InputIterator last);
bimap(const bimap &);
于是我尝试了第二个,就像这样:
std::vector<std::pair<A,B>> v{{a1, b1}, {a2, b2}, {a3, b3}};
MyBimap map(v.begin(), v.end());
这也没有起作用。文档并没有明确说明这个构造函数需要什么类型的迭代器,但显然它不仅仅是一组 std::pair<A, B>
对象的迭代器。那么这个 bimap 的构造函数需要什么样的迭代器呢?