誰かがこれらの質問をしなければならなかったと思いますので、ご容赦ください。
次の獣について考えてみましょう。
- ストリーム
- iストリーム
- iostream
- ストリームバッファ
string- Benjamin の観察によると、これはここには属しません。- 文字列バッファ
および次の反復子:
- ostream_iterator
- ostreambuf_iterator
- istream_iterator
- istreambuf_iterator
質問:
iostream_iterator
, streambuf_iterator
, (std::string::iterator と std::string::const_iterator が存在する) またはがないのはなぜstring_iterator
stringbuf_iterator
ですか?
上記の 4 つのイテレータに のような const バージョンがないのはなぜstd::vector<T>::const_iterator
ですか?
begin() メソッドと end() メソッドが提供されていない場合、これらの獣のいずれかをどのように反復処理する必要があるでしょうか? 上記の 4 つの反復子の目的は何ですか?
N00b 質問: これらのクラスの背後にあるロジックの詳細と、それらの使用方法に関するいくつかの適切な例を詳しく説明している適切なリファレンスはどこにありますか?
うまくいけば、経験のある人が上記の質問に対して適切な答えを提供します。
PS: 実際の状況:
void writeToStream(std::ostream &out);
int main ()
{
std::ostringstream byteStream;
writeToStream(byteStream);
std::string byteString = byteStream.str();
for (unsigned short i = 0; i < byteString.size(); ++i)
{
//do something with each byteString[i]
}
return 0;
}
私の推測では、メソッドを使用して for に変換する代わりに、ostream
for と同じようにイテレータを使用してその要素を使用および反復できたはずですが、これに関する情報は見つかりませんでした。std::vector
ostringstream
str()
string