gpt4 book ai didi

c++ - 小数背包中实现的贪心算法

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:43 25 4
gpt4 key购买 nike

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
double fractional_knapsack(vector<int>& val,vector<int>& wt,int weight)//vectors of values and their respective weights and max weight are passed as parameter
{
int sz=val.size();
vector<double> ratio(sz); //vector to store ratio of values and weights
for(int i=0;i<sz;i++){
ratio[i]=double(val[i]/wt[i]);
}
sort(ratio.begin(),ratio.end(),greater());
//reverse(ratio.begin(),ratio.end());
double max=0.0;
int j=0;
while(max<=weight&&j<sz){
double(weight[j]);
max=max+(ratio[j]*weight[j]);
}
return max;
}
int main()
{ int max_weight,n;
cin>>n>>max_weight;
vector<int>values;
vector<int>weights;
for(int i=0;i<n;i++){
cin>>values[i];
}
for(int i=0;i<n;i++){
cin>>weights[i];
}
double result=fractional_knapsack(values,weights,max_weight);
cout<<"done/n";
cout<<result;
return 0;
}

D:\COdeBlock Projects\Fractional Knapsack\main.cpp|12|错误:'(' 标记前缺少模板参数|

它正在 devcpp 中编译,但 program_name.exe 正在崩溃

在方法中fractional_knapsack(vector<int>& val,vector<int>& wt,int weight)为什么我们传递 vector 作为引用。

最佳答案

快速查看错误消息发现问题出在线路上 sort(ratio.begin(),ratio.end(),greater());

我猜你想要 sort(ratio.begin(),ratio.end(),greater<double>());

排序方法需要一个比较器。如果您查看 doc更重要的是,有一个关于如何使用它的示例。

关于c++ - 小数背包中实现的贪心算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42536798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com