1. 简介

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进群领取!~