如何在struct中插入和打印列表

时间:2015-07-09 04:54:46

标签: c++ struct doubly-linked-list

我有实现双链接列表使用STL列表,我在结构中访问和push_back值列表时有问题。这是我的结构:

typedef struct tanaman{
  string nama;
  list<double> tinggi;
} plant;

我尝试使用类名Oryza,这里是代码:

class Oryza{
    list<plant> pt;
public:
    int isEmpty(){ pt.empty();}
    void push_back(plant val) { pt.push_back(val);}
    void print();
};

我的问题是,我如何在struct中列出tinggi列表。

int main(){
    Oryza jagung;
    int n,m;
    float t;
    string nama;
    plant data;

    cin >> n;
    while(n--){
        cin >> nama >> m;
        data.nama=nama;
        while(m--){
            cin >> t;
            ???????
        }
        jagung.push_back(data);
    }

    jagung.print();
    return 0;
}

和示例输入:

  

2
F123 5 56.2 32.4 14.2 43.7 10.5
B651 2 89.9 87.2

2 个答案:

答案 0 :(得分:0)

尝试:

data.tinggi.push_back(t);

答案 1 :(得分:0)

你的同时应该看起来像:

while(n--){
    cin >> nama >> m;
    data.nama = nama;
    while(m--){
        cin >> t;
        data.tinggi.push_back(t);   // Change 1
    }
    jagung.push_back(data);
    data.tinggi.clear();  // Change 2
}

您必须将对象推入data,并确保在下次迭代之前清除tinggi以避免数据重复。

最好将t的类型从float更改为double