У меня есть следующий список, в котором пользователю предлагается написать имя учащегося, а затем подсказку о 3 оценках в трех экзаменах, полученных на каждого учащегося.Я хотел бы добавить имя студента, если его оценка на первом экзамене> 4.0.Однако, когда я делаю это на шаге paso_primer_exam.insert (i), я получаю сообщение об ошибке: кандидат ожидает 3 аргумента, 1 при условии paso_primer_exam.insert (i);
Я думал, что в форме вы можете добавить значение послеитерация в новом списке была простой, как в Python.Кто-нибудь знает, как решить эту ошибку?Вот мой код
#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
list <string> paso_primer_exam;
for (auto i=boletin.begin(); i!= boletin.end(); i++){
cout << '\n' + i -> first << endl;
float primera_nota;
list <float> notas = i -> second;
primera_nota = notas.front();
notas.begin();
if (primera_nota >= 4.0){
paso_primer_exam.insert(i);
}
for (auto it=notas.begin(); it != notas.end(); ++it){
cout << ' ' << * it << endl;
}
}
return 0;
}