0

我们有map

std::map<double, COLORREF> colorset;

colorref在这里,我提供了返回的部分函数value

COLORREF GetColour(double value) const
{
   ...
   for(std::map<double, COLORREF>::iterator ii=colorset.begin(); ii!=colorset.end(); ++ii)
   {
    std::cout << (*ii).first << ": " << (*ii).second << std::endl;
   }
   ...
   return defaultColor;
}

但是,编译器给出了一个错误,说明不存在从转换tree_const_iteratortree_iteratorin colorset.begin()

如果我从函数中删除 const 项,一切正常,但我必须将函数声明为 const。

为什么会出现这个错误?或者有人可以提供替代方法来迭代地图吗?

4

1 回答 1

4

使用 const_iterator:

   for(std::map<double, COLORREF>::const_iterator ii=colorset.begin(); ii!=colorset.end(); ++ii)

附言

我会使用 ii->first 等

于 2013-08-16T05:48:07.553 回答