【じゅんかんばっふぁ】

循環バッファ とは?

公開:
💡 終わりが始まりにつながる、回転寿司のようなデータ置き場
📌 このページのポイント
循環バッファ(リングバッファ)の構造 A B C Write Read 線形配列との違い 端に達すると終わり 循環バッファなら先頭に戻る 特徴 ・固定サイズでメモリ効率◎ ・古いデータを自動上書き ・読み書きがO(1)で高速
循環バッファのイメージ
ひよこ ひよこ
循環バッファって普通の配列と何が違うの?
ペンギン先生 ペンギン先生
普通の配列は端まで行ったら終わりだけど、循環バッファは末尾の次が先頭に戻るんだ。回転寿司のレーンみたいに、ぐるぐる回りながらデータを置いたり取ったりできるよ。
ひよこ ひよこ
データがいっぱいになったらどうなるの?
ペンギン先生 ペンギン先生
一番古いデータを上書きして新しいデータを入れるんだ。「最新の100件だけ残す」みたいな用途にピッタリだよ。
ひよこ ひよこ
読み書きはどうやって管理するのかな?
ペンギン先生 ペンギン先生
readポインタとwriteポインタの2つを使うんだ。writeが書き込み位置、readが読み出し位置。この2つがリングの中を追いかけっこするイメージだね。
ひよこ ひよこ
どんなところで使われてるの?
ペンギン先生 ペンギン先生
音楽や動画のストリーミング再生、カーネルのログバッファ、UARTなどの通信バッファ、ゲームの入力履歴など幅広いよ。メモリ割り当てが不要で高速だから、リアルタイム処理や組み込みシステムでは定番のデータ構造なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「循環バッファ」って出てきたら「ぐるぐる回って再利用する配列」と思えればだいたいOK!
📖 おまけ:英語の意味
「Circular Buffer / Ring Buffer」 = 環状バッファ
💬 配列が円環のように循環するからCircular(環状の)Bufferと呼ばれるんだよ
← 用語集にもどる