Мне кажется, что большая часть работы над библиотеками Boost заставляет их работать с другими библиотеками / STL.
Если вам не нужна эта возможность, вы можете просто использовать класс с std::map<X*, Y*>
и std::map<Y*, X*>
.Затем используйте такие методы, как: add(X,Y)
, remove(X,Y)
, get_left(X)
и get_right(Y)
.
Если вы хотите хранить копии, add(X,Y)
может выделить память, а remove(X,Y)
выделить.Кроме того, вы можете определить деструктор, который вызывает remove(X,Y)
для остальных элементов.