C++笔记-brpc flatmap


待整理
不错的参考资料:
https://www.hotaery.top/brpc/BRPC源码分析之容器篇——FLATMAP和FLATSET/#FlatMapIterator
https://blog.csdn.net/guangyacyb/article/details/104047730
https://illx10000.github.io/2019/01/20/12.html#2-flatmap
https://blog.csdn.net/whizchen/article/details/9286557

注意:
FlatMap的模板声明如下,FlatMap将会根据_Sparse的布尔值来决定选择迭代器类型。当_Sparse为false时将会使用FlatMapIterator作为其迭代器,这也是默认行为,当_Sparsetrue时,将会使用SparseFlatMapIterator作为迭代器类型,需要注意的是,SparseFlatMapIterator作为迭代器类型时,FlatMap不支持多线程访问、插入或者删除。

template <typename _K, typename _T,
          typename _Hash = DefaultHasher<_K>,
          typename _Equal = DefaultEqualTo<_K>,
          bool _Sparse = false>
class FlatMap;

多线程迭代FlatMap可能遇到不的问题
save_iteratorrestore_iterator
用于在多线程环境中用于将迭代大map的关键部分划分为较小的部分。 “不一致”是指:
在迭代过程中添加的元素可能会丢失。
某些元素可能会多次迭代。
调整地图大小时,迭代会在开始时重新开始。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM