如何在结构中插入和打印列表

How to insert and print list in struct

我有实现 Double Link 列表使用 STL 列表,当我访问结构中的 push_back 值列表时遇到问题。这是我的结构:

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

我尝试使用 class 名称 Oryza,代码如下:

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

我的问题是,我如何插入以在结构中列出 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

尝试:

data.tinggi.push_back(t);

您的时间应如下所示:

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