C 无法在列表上的迭代后使用插入物来附加值
C ++ Cannot use insert to append values after a iteration on list
我有以下列表,该列表提示用户编写学生名称,然后在每个学生获得的三个考试中提示3年级。如果学生在第一届考试中的成绩> 4.0,我想附加他的名字。但是,当我在步骤中这样做时 注意:候选人期望有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;
}
查看std::list
的方法insert
列表插入
没有办法只用一个参数调用。
也许您想使用push_back
方法。
P.S。只是对未来代码的建议,请尝试用英语编写代码。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 将重物插入std::map
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- C 无法在列表上的迭代后使用插入物来附加值
- 链接列表的C 递归插入物
- sqlite3带有参数的多个插入物;仅插入一个记录