コンテナの最初と最後の要素を引数として取り、STLアルゴリズムが機能するように、要素のシーケンスを操作する演算子<<を定義したいと思います。引数を1つだけ取るのとは対照的に、コンテナ自体、たとえば
std::ostream& operator<< ( std::ostream &out, std::list inList );
そのため、list、vector、arrayなどを使用しているかどうかに関係なく機能する関数を1つだけ作成する必要があります。また、inList.begin()とinList.end()の2つの引数を使用して関数を呼び出す必要があります。
問題は、operator<<が引数を1つだけ取るということです。これを克服するための最良の方法は何ですか?
編集:あなたの答えをありがとう。おそらく、コンテナのサブシーケンス(STLアルゴリズムのように)を含む、さまざまな要素を印刷する機能が必要であることをより明確にしたほうがよいでしょう。たとえば、ベクトルvに5つの要素がある場合、次のような出力でv.begin()からv.end()までのシーケンスを与えるすべての要素を出力できます。
[element1 element2 element3 element4 element5]
ただし、[v.begin()、v.begin()+ 3)の範囲で最初の3つだけを印刷できればいいのですが。
[element1 element2 element3]
この場合、提案された回答は機能しますか?