我有一个相当大的项目,它实现了Dijkstra的算法来模拟网络发送数据包我遇到了一个我从未见过的问题;
我设法将问题缩小到这个范围:
//Member function of vertex
unordered_map<Vertex *, int> getEdges()
{
return _edges; //same data type as return type
}
//Call to member function
Vertex *t = //Arbitrary vertex
unordered_map<Vertex*, int> edges = t->getEdges();
由于某些原因,在调用此函数时,我收到错误'list iterators not compatible'。有谁知道为什么会这样?
编辑: 暂时删除
EDIT2: 事实证明,由于我做了最后一分钟的更改,我从getEdges()返回一个空的unordered_map。显然这会导致'列表迭代器不兼容'。
为了让其他人从我的错误中吸取教训,我会将代码上传到一个更长久的位置。
答案 0 :(得分:0)
以下代码在NetBeans中适用于我,使用C ++ 11.请记住,我使用的值是任意的,当然我已经硬编码每个顶点以返回任意新边(我假设你' d改变.. ..
update Table1 set Column2 = case
when charindex('(', Column1) > 0
then substring(Column1, 1, charindex('(', Column1) - 1)
else Column1
end
答案 1 :(得分:0)
原来我从getEdges()得到一个空的unordered_map,因为我做了最后一分钟的更改。显然,这可能导致“迭代器”列表不兼容&#39;。