[英]C ++ Cannot use insert to append values after a iteration on list
我有以下列表,提示用户写一个学生姓名,然后在每个学生获得的三个考试中提示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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.