我想使用递归函数打印出向量的值。
void pvec(int cnt, std::vector<int> vec) {
if(cnt < vec.size()) {
std::cout << vec[cnt++] << std::endl;
return pvec(cnt,vec);
}
}
我不想使用向量下标,而是想使用迭代器。但是,当我编写一个类似的函数时,我为第一个参数传递了一个迭代器并尝试使用递增的迭代器返回该函数,循环不会停止并且我得到一个分段错误。为什么是这样?
void pvec(std::vector<int>::iterator po, std::vector<int> vec)
{
if(po < vec.end()) {
std::cout << *po++ << std::endl;
return pvec(po,vec);
}
}
我确实尝试让 po 成为参考,但这也不起作用。