データ構造を使用してライブラリを作成しています: std::vector<std::string>
. API を満たす必要があります。つまり、データ構造を反復処理するには、ユーザーは次のことを行う必要があります。
for (lib::result::const_iterator it = data.begin(); it != data.end(); it++)
lib::result::const_iterator
これを行うには、自分で実装する方法と から継承する方法の 2 つがあり、std::vector<std::string>::iterator
どちらも機能するはずです。ベクトル反復子からの継承は悪い考えだと読みました。
Boost iterator ファサードを使用することにしましたが、これは良い考えですか? また、実装に問題があります increment()
。std::vector 内の文字列へのポインターがある場合、次の文字列を指すにはどうすればよいですか?
最後に、私の実装は からstd::vector<std::string>
に変更される可能性がstd::vector<MyDatatype>
あるため、boost ファサードを使用したいと思います。これにより、データ構造に変更を加えることになった場合でも、作業が簡単になります。ありがとう。