类型比较
- unsigned类型
int nlen = needle.size(); if(needle.size() == 0) return 0; while(i <= haystack.size() - nlen){ }
- haystack.size()返回值为size_t即unsigned类型
- 比较运算符会自动转换为unsigned类型比较
- haystack.size() - nlen结果是正数
- double类型
double类型之间比较需要考虑其小数点后的位数,例如1.0有可能 不等于1.0,因为1.0有可能是 1.000001
所以比较大小应用:double a = 1.0,b = 1.0; if(fabs(a - b) < 0.00001){ }