C++ 标准容器不够用,问题主要在性能的一些方面。
GitHub 上没有我满意的轻量级实现,因此就我来造这些轮子吧。
https://github.com/Ubpa/UsmallFlat
纯头文件,直接拷贝拖进项目里就可以用。基于 C++20 实现。
2. 轮子总览这次我造的轮子有
上述容器的接口遵循标准容器。
关于 flat 容器的算法复杂度问题,各接口主要用了二分法 + vector,所以复杂度问题上都是挺直观的,具体可参考 boost 的说明 boost | flat_set 等。
3. 使用示例常用容器为
用法上完全同于标准容器。基本支持一切 C++11/14/17/20 的接口(除了 set 和 map 的 node 相关接口,因为这里的容器为 flat,没有 node 的概念)。对于 flat 容器,还额外新增 vector 的接口(data,capacity,front,back,reserve,shrink_to_fit)。
这里就简单举例一下:
4. 总结欢迎使用,感谢阅读!如有错误,欢迎指正,感谢各位。
整理了一些最新LinuxC/C++服务器开发/架构师面试题、学习资料、教学视频和学习路线脑图(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享有需要的可以自行添加学习交流群960994558进群领取!~