#include<iostream>
#include<initializer_list>
#include<vector>
using namespace std;
void print(vector<string> v,vector<string>::iterator i)
{
//cout << typeid(i).name()<<endl;
//cout << typeid(v.end()).name()<<endl;
//调试后发现此处比较会触发断言
if (i == v.end())
{
return;
}
else
{
cout << *i << endl;
print(v, i +1);
}
}
int main()
{
vector<string> v = { "hello","goo","test3","test" };
print(v, v.begin());
return 0;
}
在第一次比较的时候就触发断言,错误信息vector iterator incompatible
可我传入的不就是同类型的迭代器吗,为啥会不匹配?