我需要一个容器,它包装其他容器并使它们像zip_iterator一样可穿越,但也包含其他功能(如push_back()
,size()
,...)。在stdlib
或boost
?
背景
我有一个类,它在boost::ptr_list<BaseClass>
中存储多态基类,但需要更多信息存储在此旁边。使用正常std::list
我只会做std::list<std:pair<BaseClass, OtherInformation> >
并完成,但我想要boost::ptr_list
的指针管理。
我提出的一个明显的解决方案是:拥有两个容器boost::ptr_list<BaseClass>
和std::list<OtherInformation>
。这解决了这个问题,但让我总是处理两个容器而不是一个容器(这也会导致容器之间的不一致)。
所以我正在搜索一个包装器,它将包装两个(或任意数量的)容器,并使它们像一个容器一样可以存储数据的元组。
总结一下:
要么我需要一个能够做到这一点的容器,那么我想知道是否已经有一个容器,或者我是否必须实现它自己(我会考虑一些乐趣:)。
或者我想到的解决方案是错误的方法,请告诉我替代方案。