我想定义运算符 << 以对一系列元素进行操作,就像 STL 算法一样,将容器的第一个和最后一个元素作为参数。与仅采用一个参数相反,容器本身,例如
std::ostream& operator<< ( std::ostream &out, std::list inList );
所以我只需要编写一个函数,不管我是否使用列表、向量、数组等,我都必须使用两个参数调用该函数,inList.begin() 和 inList.end()
问题是 operator<< 只接受一个参数。克服这个问题的最佳方法是什么?
编辑:谢谢你的回答。我可能应该更清楚地表明我希望能够打印一系列元素,可能包括容器的子序列(再次,如 STL 算法)。例如,如果一个向量 v 有 5 个元素,我希望可以将它们全部打印出来,给出一个从 v.begin() 到 v.end() 的序列,输出如下:
[element1 element2 element3 element4 element5]
但我希望我也可以只打印前三个,在 [v.begin(), v.begin()+3) 范围内
[element1 element2 element3]
您建议的答案在这种情况下有效吗?