我想定義運算符< <以像STL算法一樣工作的方式對元素序列進行操作,方法是將容器的第一個和最後一個元素。與僅採用一個參數相反,容器本身(例如,開發序列的ostream <<運算符
std::ostream& operator<< (std::ostream &out, std::list inList);
,這樣我就只需要編寫一個函數,如果我使用列表,向量,陣列,等我將不得不調用函數有兩個參數,inList.begin會不管工作( )和inList.end()
的問題是,操作者< <只有一個參數。解決這個問題的最好方法是什麼?
編輯:謝謝你的回答。我應該更清楚地表明,我希望能夠打印一系列元素,包括可能的容器子序列(再次像STL算法一樣)。例如。如果向量v有5個元素,我希望能全部打印出來,像這樣的輸出給從v.begin())的序列v.end(:
[element1 element2 element3 element4 element5]
但我想我也可以打印前三隻,範圍在[v.begin(),v.begin()+ 3)
[element1 element2 element3]
請問你的建議答案在這種情況下工作嗎?
1)注意,必須寫一個函數模板,而不是函數。 2)也許'std :: begin()','std :: end()'會更好? –
@Robᵩ1)可能2)不明白爲什麼......它是否支持主編譯器? –
2)因爲'std :: begin()'除了'std ::'容器之外還有專門的數組。 –