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

C++ 如何在结构中插入和打印列表,c++,struct,doubly-linked-list,C++,Struct,Doubly Linked List,我使用STL List实现了双链接列表,当我访问并推回结构中的值列表时遇到问题。这是我的结构: typedef struct tanaman{ string nama; list<double> tinggi; } plant; 和示例输入: 2f123556.232.414.243.710.5b651289.987.2 尝试: 您的while应该如下所示: while(n--){ cin >> nama >> m; data.nam

我使用STL List实现了双链接列表,当我访问并推回结构中的值列表时遇到问题。这是我的结构:

typedef struct tanaman{
  string nama;
  list<double> tinggi;
} plant;
和示例输入:

2
f123556.232.414.243.710.5
b651289.987.2

尝试:


您的while应该如下所示:

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
}
您必须将对象推入
数据
,并确保在下一次迭代之前清除
tinggi
,以避免数据重复


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

我有一个更基本的问题:您认为
Oryza::isEmpty()
返回值是多少?(提示)函数Oryza::isEmpty()返回值为int,我修复,
int Oryza::isEmpty(){return dt.Empty();}
。谢谢你的问题。好的,非常感谢,也许我会将数据类型
t
更改为
double
,因为struct中的
tinggi
是数据类型
double
。请提供此答案有用的更多详细信息。
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;
}
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
}