У меня есть такой бимап:
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>
. Тогда что ожидает этот конструктор для такого рода бимапов?