【发布时间】:2014-01-06 17:56:39
【问题描述】:
我在以下代码中有一个奇怪的错误:
float Student::getAverageMark() const throw (NoMarkException)
{
int sum = 0;
int count = 0;
for(map<string, float>::iterator iter = marks.begin(); iter != marks.end(); ++iter) {
sum += iter->second;
count++;
}
return sum/count;
}
如您所见,这并没有什么特别之处,它是一个计算地图中平均标记的简单代码。我在一个在线编译器中对此进行了测试,它可以工作,但是当我尝试在我的机器上编译它时(我正在使用带有 GNU GCC 编译器的 CodeBlocks)我得到了这个错误:
错误:从 'std::map, float>::const_iterator {aka std::_Rb_tree_const_iterator, float> >}' 转换为非标量类型 'std::map, float>::iterator {aka std: :_Rb_tree_iterator, float> >}' 请求|
【问题讨论】: