面试真题

C++ · 中等 · 微软

手撕ringbuffer

中等 C++ 🎤 微软
参考答案
结论:ringbuffer是环形缓冲区,用数组+读写指针高效缓冲字节流。核心要点:1)成员含char buf[N]、读r、写w指针;2)若容量为2幂可用位掩码&替代取模提升性能;3)写入时若剩余空间不足可选择覆盖或阻塞,读取移动r;4)与有界队列差异在于常处理连续字节流而非离散对象,用指针距离判空满;5)常用于音视频、网络IO。示例:template<size_t N>class Ring{char b[N];size_t w=0,r=0;bool push(char c);};
题目整理自公开面经,答案由校招宝自研生成,仅供参考