我正在尝试遍历通过询问用户输出创建的哈希图。我无法打印哈希图的第二个值,该值是浮点数列表。我应该做一个嵌套的循环吗?如果是这样,这样做的代码约定是什么?
/* 14. En una clase de 5 alumnos se han realizado tres exámenes
y se requiere determinar el número de:
a) Alumnos que aprobaron todos los exámenes.
b) Alumnos que aprobaron al menos un exámen.
c) Alumnos que aprobaron únicamente el último exámen.
Realice un programa que permita la lectura de datos y
el cálculo de estadísticas
*/
#include <iostream>
#include <string>
#include <unordered_map>
#include <list>
using namespace std;
int main(){
// Crear un mapa que guarde los valores
// de los estudiantes en la siguiente forma:
// "estudiante": [nota1, nota2, nota3]
unordered_map<string, list<float>> boletin;
string nombre;
float nota_1, nota_2, nota_3;
for (int i = 1; i < 3; i ++){
cout <<"Digite nombre del estudiante: " << i << endl;
cin >> nombre;
cout <<"Digite las tres calificaciones: " << endl;
cin >> nota_1 >> nota_2 >> nota_3;
boletin.insert({nombre, {nota_1, nota_2, nota_3}});
}
// iterando e imprimiendo los elementos del
// hashmap
for (auto i=boletin.begin(); i!= boletin.end(); i++){
cout << i -> first << endl;
cout << i -> second << endl;
}
}
return 0;
}
答案 0 :(得分:0)
是的,您需要使用嵌套循环。 代码语法应类似于:
for (auto i=boletin.begin(); i!= boletin.end(); i++) {
cout << i -> first << endl;
list<float> mylist = i->second;
for (auto it=mylist.begin(); it != mylist.end(); ++it) {
std::cout << ' ' << *it;
}
}