Как сделать два или более элементов в BIMAP в качестве ключа

Я хотел бы знать, возможно ли вставить два или более элементов в bimap в качестве ключа. У меня есть минимальный пример bimap с одним элементом ключа

#include <boost/bimap.hpp>
#include <boost/bimap/multiset_of.hpp>
#include <string>
#include <iostream>

int main()
{
typedef boost::bimap<boost::bimaps::set_of<int>,boost::bimaps::multiset_of<int> > bimap;
bimap numbers;

numbers.insert({1, 1});
numbers.insert({2, 1});
numbers.insert({3, 8});
auto it = numbers.left.find(1);std::cout << it->first << ":" << it->second << std::endl;
}

Теперь я могу иметь что-то вроде

typedef boost::bimap<boost::bimaps::set_of<int>,boost::bimaps::multiset_of<int, int > > bimap;
bimap numbers;
numbers.insert({1, 1, 5});
numbers.insert({2, 1, 1});

0

Решение

Пара целых имеет тип станд :: пара<int, int> ( также станд :: кортеж<int, int> в C ++ 11 и более поздних версиях)

typedef boost::bimap<boost::bimaps::set_of<int>,boost::bimaps::multiset_of<std::pair<int, int > > > bimap;
bimap numbers;
numbers.insert({1, {1, 5}});
numbers.insert({2, {1, 1}});

Обратите внимание на дополнительные {} во вставках

1

Другие решения

Других решений пока нет …