Я просто столкнулся с чрезвычайно странной проблемой. Функция у меня есть просто:C++ string.length() Странное поведение
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 нет, вы можете попробовать размер() тоже такое же поведение. – Arch1tect
@aslg Согласно [docs] (http://en.cppreference.com/w/cpp/string/basic_string/size), они не отличаются друг от друга. – Sinkingpoint
Длина и размер такие же, насколько мне известно. 'I = 0; i <= -1; i ++ 'потребуется некоторое время, чтобы добраться до случая выхода. – user4581301