我有一个连续工作的享元模式,工厂std::map
用来存储和提供对创建对象的访问。工厂返回iterator
指向地图中对象的一个。工厂中的对象是常量,因此一旦插入它们就不会更新,除非它们被擦除。
我想让工厂同时使用tbb::concurrent_hash_map
,但我不确定返回应该是什么。我可以使用iterator
(应该是const_iterator
?),但是文档说,当afind
或insert
. concurrent_hash_map
所以我可以使用 aconst_accessor
因为只需要只读访问,但这与串行实现(iterator
vs accessor
)不同。
哪个更好用?类型的一致性(即两个迭代器)是否重要?串行和线程编译时选项都需要在那里。