二进制表达式的无效操作数,读取结构数组

时间:2019-03-02 15:42:16

标签: c++ struct knapsack-problem

我正在尝试解决小背包问题。我需要一个结构来连接值和权重。现在,我想读取结构项的数组,但这给了我:

  

无效的表达式错误

#include <iostream>
#include <vector>
#include <string>

using std::vector;
using namespace std;

// Structure for an item which stores weight and corresponding
// value of Item
struct Item
{
    int value, weight;
    // Constructor
    Item(int value, int weight) : value(value), weight(weight) {}
};

int main()
{    
    int n;
    int W;
    std::cin >> n >> W;

    vector<Item> arr(n);
    for (int i = 0; i < n; i++) {
        std::cin >> arr[i];
    }

    cout << "Maximum value we can obtain = " << fractionalKnapsack(W, arr, n);
    return 0;
}

1 个答案:

答案 0 :(得分:1)

arrvector类型的对象的Item。要访问Item字段,必须使用.->(如果使用的是pointer)。您正在尝试使用cin >> arr[i]char的对象输入Item

尝试一下:std::cin >> arr[i].value