如何通过引用返回向量中的值?

时间:2013-09-02 07:01:13

标签: c++ reference

我正在尝试返回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 ... 我该如何解决这些错误?

1 个答案:

答案 0 :(得分:7)

您正在尝试返回迭代器,而不是迭代器指向的内容。所以你需要返回*it