【发布时间】:2013-12-26 13:40:08
【问题描述】:
使用 CPP 地图,从 Eclipse 编辑器获取警告信息。
Point find_shortest_node(const vector<Point> &openset,const map<Point, int> &f_score,const map<Point, vector<int> > &f_direction) {
vector<Point>::iterator iner_iterator = openset.begin();
Point min_point = *iner_iterator;
while (iner_iterator != openset.end()) {
if (f_score[*iner_iterator] < f_score[min_point]) {
min_point = *iner_iterator;
}
else if (f_score[*iner_iterator] == f_score[min_point]) {
vector<int> temp1 = f_direction[*iner_iterator], temp2 =f_direction[min_point];
if (temp1.size() < temp2.size()) {
min_point = *iner_iterator;
continue;
}
}
iner_iterator++;
}
return min_point;
}
警告信息:
传递 'const std::map' 作为 '_Tp& std::map<_key _tp _alloc>::operator[](const _KT&) 的 'this' 参数 [with _KT = Point, _Key = Point , _Tp = int,_Compare = std::less, _Alloc = std::allocator >]'丢弃限定符[-fpermissive]
【问题讨论】:
-
我没有在您的代码中看到声明为
const的map引用,但我仍然怀疑这是问题 stackoverflow.com/questions/1474894/… -
看起来很可疑,您在发布此内容时从第二个参数之前删除了
const关键字。你确定你的真实代码中没有const吗?