c++ - 为什么标准库 min 函数在下面显示错误?
问题描述
class Solution {
public:
int maximumProduct(vector<int>& nums) {
int n = nums.size();
vector<long long int> left_max(n,0);
vector<long long int> right_max(n,0);
vector<long long int> left_min(n,0);
vector<long long int> right_min(n,0);
left_min[0]=nums[0];
left_max[0]=nums[0];
cout<<max(1,5); //this line is working
for(int i=1;i<nums.size();i++){
left_min[i]=min(left_min[i-1],nums[i]); // why this line is throwing error
left_max[i]=max(left_max[i-1],nums[i]);
}
right_min[n-1] = nums[n-1];
right_max[n-1] = nums[n-1];
for(int i=n-2;i>=0;i++){
right_min[i]=min(nums[i],right_min[i+1]);
right_max[i]=max(nums[i],right_max[i+1]);
}
for(int i=0;i<n;i++){
cout<<right_min[i]<<" ";
}
return 1;
}
};
上面我评论了两行,第一行显示错误,另一行没有?有人可以解释一下吗?
下面的错误信息:
Line 16: Char 25: error: no matching function for call to 'min'
left_min[i]=min(left_min[i-1],nums[i]); // why this line is throwing error
^~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/algorithmfwd.h:383:5: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('long long' vs. 'int')
min(const _Tp&, const _Tp&);
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:3450:5: note: candidate template ignored: could not match 'initializer_list<type-parameter-0-0>' against 'long long'
min(initializer_list<_Tp> __l, _Compare __comp)
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:3444:5: note: candidate function template not viable: requires single argument '__l', but 2 arguments were provided
min(initializer_list<_Tp> __l)
^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/algorithmfwd.h:388:5: note: candidate function template not viable: requires 3 arguments, but 2 were provided
min(const _Tp&, const _Tp&, _Compare);
^
解决方案
您正在传递两种不同的类型,int
以及long long int
tomin
和max
. 这些函数期望两个参数是相同的类型。
您可以尝试将int
参数转换为long long int
.
推荐阅读
- python - 张量流错误:从分类列组成交叉列
- apache-kafka - 使用 Kafka Streams DSL 多次将同一主题用作源
- node.js - 如何修改mongodb/mongoose中私有路由的schema方法?
- c++ - 如何设置自定义小部件的背景颜色和边框宽度?
- android - SSL 证书固定在 Android 9 上不再工作
- vba - 收到电子邮件时运行的 Outlook 脚本仅在我将新邮件传输给自己时才有效
- ruby-on-rails - 将 Rspec 控制器测试从 Rails 4.2.10 迁移到 Rails 5.1.4 的问题
- django - Django 1.8 迁移输出
- azure-functions - EventGrid 订阅绑定通过 ngrok 工作到本地计算机,而不是 Azure 中的函数
- sql - SQL Server 和 ORACLE 之间的 SSIS 变量日期失败