【发布时间】:2020-05-28 17:49:37
【问题描述】:
以下代码只是使用另一个名为 recurse 的函数打印从主函数获得的字符串。我只是想知道如何将字符串迭代器变量传递给另一个函数。但是我写的代码没有打印任何结果。有人可以告诉我错误是什么以及我可以做些什么来使代码正常工作吗?
#include <iostream>
#include <string>
using namespace std;
void recurse(string::iterator &start, string::iterator &end)
{
while(start != end)
{
cout << *start;
++start;
}
}
int main()
{
string s;
string::iterator i = s.begin(), j = s.end();
cout << "Enter the string here: ";
getline(cin, s);
recurse(i, j);
}
【问题讨论】:
-
getline您的迭代器无效。输入字符串后,您应该调用begin/end。也不要通过引用传递迭代器,它们是轻量级对象,通过值传递。下面recurse(s.begin(), s.end());就可以了。
标签: c++ string function iterator