【发布时间】:2015-06-17 00:28:45
【问题描述】:
我刚刚遇到了一个非常奇怪的问题。我的功能很简单:
int strStr(string haystack, string needle) {
for(int i=0; i<=(haystack.length()-needle.length()); i++){
cout<<"i "<<i<<endl;
}
return 0;
}
那如果我调用strStr("", "a"),虽然haystack.length()-needle.length()=-1,这不会返回0,你可以自己试试……
【问题讨论】:
-
@aslg 不,你也可以试试 size(),同样的行为。
-
@aslg 根据docs,它们并没有什么不同。
-
据我所知,长度和大小是相同的。
i=0; i <= -1; i++需要一段时间才能到达出口案例。 -
@user4581301 为什么要花一点时间?根本不应该进入循环
-
因为 -1 是一个无符号整数。