Boost Rangesには、要素を簡単にカンマやスペースで区切るなどの方法が組み込まれていますか?
もちろん、それらをループして別々に印刷できることは承知していますが、これは何らかの方法で組み込む必要があるようです(スクリプト言語でベクトルを印刷するなど)。
私が見たサンプルプログラムでは、作者は範囲をcoutにコピーしました。
boost :: copy(range、ostream_iterator(cout、 ""))
私には醜いように見えます。これは慣用的ですか?
編集:stdイテレータのソリューションも受け入れられます。
EDIT2:私がやりたいことはこれです:
cout << range;
しかし、私はそれがうまくいくとは思いません。だから私が望んでいるのはこのようなものです(Pythonに触発されました):
cout << range.join(", ");
またはおそらくレンジアダプターを使用します。
cout << (range | stringify(", "));