本人所写的一段,出现了string iterator incompitable,但不知道错在哪里

C++语言 码拜 8年前 (2016-04-09) 934次浏览
本人所写的一段,出现了string iterator incompitable,但不知道错在哪里
本人所写的一段,出现了string iterator incompitable,但不知道错在哪里
调试发生错误的语句为findterm函数中断点所示的位置。
findterm的函数的参数string s为45×5+23×3-12x+1这样形式的一段字符串(本人调试时用的即左侧给出的这一段),i,j分别为s的iterator,在调用这个函数之初,i与j是相等的。
其中find_if的predicator是ifoprt,即第二张图片给出。
运行到第一个find_if时,调试报错,string iterator incompatible.
没有搞清楚是哪里错了,也不知道该怎么去找错误。
希望能得到指点。
解决方案

5

把完整的测试代码发上来看一下,本人没有发现报错。个人估计你的iterator 不是同一个string的。

15

讨厌贴的代码图片!本人要改你的代码,抄都不好抄。
最简单的改法是把最后string s改成string &s就可以了。
你代码里面没有改i,j,s,所以最好用const的。

string findterm(string::const_iterator i, string::const_iterator j, const string & s); 

40

只有属于同一个容器的迭代器才能相互比较。(对于end存在例外)
string s在传参的过程中经过了复制,不再是i,j所属的容器了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明本人所写的一段,出现了string iterator incompitable,但不知道错在哪里
喜欢 (0)
[1034331897@qq.com]
分享 (0)