mah*_*ood 6 c++ unordered-map fixed-size-types
是否可以定义固定大小unordered_map
?
查看成员函数,没有resize()
类似的std::vector
和std::list
.此外,谷歌没有帮助我.
是的,这是可能的,但STL中没有这样的地图.你可以做的是写自己的类包含std::array< std::pair<Key, Value>, N>
并提供最的find()
,insert()
使用功能std::hash
自己.如果你使用std::vector< std::pair<Key, Value> >
as数据成员,你甚至可以有一个resize()
函数只显式扩展表,但不能隐式地扩展表insert()
.
要意识到的一件重要事情是,您还需要提供一种迭代各种元素的方法,以满足所有容器需求.通常,这通过具有在所有存储元素上实现链表的辅助数据来完成.
但是,您需要解决的一个问题是,如果阵列已满,则使用哪个替换策略来替换项目.在std::unorderd_map
使用所谓的链接中,与每个-对于入门级动态分级的桶(至少有向前迭代,所以至少相当于forward_list
).大多数国际象棋程序都有一个固定大小的哈希表,其中包含替换策略,以便在特定表条目已被占用时始终替换项目.
归档时间: |
|
查看次数: |
4905 次 |
最近记录: |