【问题标题】:Getting all the values from a map从地图中获取所有值
【发布时间】:2017-01-14 22:35:46
【问题描述】:

我有一个 Student 类,其中包含一个名称、一个私有 int regNo 和一个私有映射,该映射存储他们的标记。这是构造函数。

Student::Student (string const& name, int regNo):Person(name), regNo(regNo)
{
    map<string, float> marks;
}

我需要编写一个函数,该函数接受两个参数,我的一组学生存储在一个向量中,以及一个用户提供的浮点数,该函数应该输出学生的姓名,以及最低、最高和平均分数当他们的平均值大于用户提供的输入时。我的问题是从地图中获取所有值(标记)的最简单方法是什么?就像访问地图并获取所有分数一样,我是否需要学生类中的一个函数来返回一个分数,最好的方法是什么?谢谢。

【问题讨论】:

  • this question 有帮助吗?
  • @merlinND 如果地图是该类的私有成员,则它不起作用,是吗?
  • 确实,您可以在 Student 类中创建一个访问器方法,该方法将根据需要返回值(以便尊​​重封装)。

标签: c++ class private


【解决方案1】:

您可以创建一个返回所有标记向量的函数

vector<string> vec;
for( map<string,float>::iterator it = marks.begin(); it != marks.end(); ++it) 
{
    vec.push_back(it->first);
}

【讨论】:

  • 对,我需要什么来传递标记映射的函数?并且是返回类型 vector?
  • 在类里面,返回类型会是vector!
猜你喜欢
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
  • 2011-08-09
  • 2011-05-10
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多