C ++で、指定された固定長(15文字など)のチャンクで無限に長い文字列を処理したいと思います。
文字列は処理を担当するクラスの属性であり(クラス「Person」と属性「_description」を呼び出します)、外部コードは各チャンクを順番に処理するメソッド(Person :: processDescription()など)を呼び出す必要があります。別のメソッドでは、処理するチャンクがもう1つあるかどうかを確認できます(例:Person :: isThereMoreDescriptionToBeProcessed())。
インデックスと起こりうる副作用(+ 1 / -1、init ..のエラー)を回避するために、誰かがrange_iterators(boost)の配列を格納し、処理のためにそれらを反復処理するように提案しましたが、わかりませんrange_iteratorの概念とBoostのドキュメントは、ここではあまり役に立ちませんでした。
Personの属性として2つのアイテム(たとえば、_currentItemと_endItem)を保存し、次のようなチェックを行うと思います。
_currentItem == _endItem
isThereMoreDescriptionToBeProcessed()で、私は次のようなことをするだろうと思います
_currentItem++
processDescription()の最後にありますが、この目的のために_descriptionプロパティの初期化で範囲イテレータの配列を設定する方法と、processDescription()で処理される文字列を取得する方法を理解できません。
これにいくつかのライトを投げてくれてありがとう。