【发布时间】:2019-10-11 03:39:45
【问题描述】:
我有以下列表,它提示用户输入学生姓名,然后提示每个学生在三门考试中获得 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;
}
【问题讨论】: