我有实现双链接列表使用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
答案 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
。