- 错误描述
- 原因分析
- 解决方法
- 1. 方法一:
- 2. 方法二:
- string.size()作为max函数的参数时编译不通过,leetcode提示:
no matching function for call to ‘max’
ans = max(ans, target.size());
^~~
- 具体代码如下
int ans = -1; string target = "abc"; ans = max(ans, target.size());原因分析
查看string.size()的源码,发现其返回值是size_type类型的,它定义为与unsigned型(unsigned int获unsigned long)具有相同含义,而且保证足够大的能够存储任意的string对象的长度。所以max的两个参数1个是int,另外一个是unsigned,所以产生了报错。
解决方法 1. 方法一:int ans = -1; string target = "abc"; ans = max(ans, (int)ttarget.size());2. 方法二:
int ans = -1; string target = "abc"; int k = target.size(); ans = max(ans, k);



