私は円形のリストを使いたいです。C++のサーキュラーリストの標準実装は存在しますか?
自分のオプション(like this person did)を実装するのに手間がかかりますか?
具体的には、オブジェクトのリストを反復処理します。イテレータがリストの最後に到達すると、自動的に最初に戻ります。
See Vladimir's definition of a circular_iterator
: "circular_iteratorは決してCircularList :: end()と等しくないので、いつもこのイテレータを参照解除することができます。"
ありがとうNaaff!ベクトルの大きさでインデックスを修正するのは簡単な解決策ですが、私はそれを考えなかったのは恥ずかしいです。 – Runcible
'vector'の大きさが2の累乗であることを保証するならば、モジュラス演算の高価なオーバーヘッドの代わりに、ビット単位の'& '演算子を使用してください。これは次のように動作します。 '(n mod(2^k))==(n&(2^k-1))' 'n%256 ==(n&(255))' –