我正在研究c++入门,并且在一个练习中,我必须执行一个将函数打印在 vector 上的递归函数。
我这样做:
void printVector(vector<int>::iterator it1, vector<int>::iterator it2) {
cout << *it1 << " ";
if (it1 != it2-1)
printVector((it1 + 1), it2);
}
是否有另一种形式来声明它,而没有
if(it1!= ***IT2-1***)
我觉得这是一个平庸的解决方案,因为我找不到其他方法。
谢谢!!
最佳答案
您的函数不应该接受空范围,应该将退出条件置于递归函数的开头:
void printVector(vector<int>::iterator it1, vector<int>::iterator it2)
{
if( it1 == it2 ) return;
cout << *it1++ << " ";
printVector(it1, it2);
}