一个向量中的两种值 C

新手上路,请多包涵

假设我有一个学生类的向量,但问题的要求表明我不能在构造函数中将成绩放在一起,所以我必须解决它。

我有可能在一个向量槽中有两个值吗?

例如,学生和字符串等级是我的论点。

 vector<Student*, string> Students;

所以,在一天结束的时候,如果我找出向量,我应该在一个槽中得到学生和成绩。

这行得通吗?如果是这样,我该如何 push_back 值?

否则,还有其他方法可以做到这一点吗?

原文由 Timothy Wong 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答
std::vector<std::pair<Student*, string>> students;

甚至更好:

 std::map<Student*, string> students;

推动价值观:

第一种情况:

 students.push_back(std::make_pair(x,y));

更好(正如@snps 建议的那样):

 students.emplace_back(x, y);

第二种情况:

 students[x]=y;

请注意,在第二种情况下,您不能添加具有相同 Student* 值的多条记录。如果你尝试它会覆盖旧的。

原文由 Humam Helfawi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题