如何在结构中插入和打印列表
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
。
我有实现 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
。