我正在尝试返回Vertex &
,这是代码:
Vertex& Graph::getVertex(std::string v) { // gets the vertex
for (std::vector<Vertex>::iterator it = vertices.begin(); it != vertices.end(); it++) {
if ((it->getName()).compare(v) == 0)
return it; // if strings are the same return vertex
}
exit(1);
}
问题是getVertex
被标记为不兼容,并且返回中的it
被标记为类型Vertex &
的引用(非const限定)无法使用值初始化类型std::vector
...
我该如何解决这些错误?
答案 0 :(得分:7)
您正在尝试返回迭代器,而不是迭代器指向的内容。所以你需要返回*it
。