c++ - 如何通过引用返回 vector 中的值?

标签 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 qualified) 不能用 std::vector 类型的值初始化 ... 我将如何修复这些错误?

最佳答案

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

关于c++ - 如何通过引用返回 vector 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18567342/

相关文章:

C++引用变量说明

c++ - 防止返回的引用被复制

c++ - 如何在 Visual Studio 2008 中启动新的 CUDA 项目?

c++ - 使用由 ".h"、 ".lib"和 ".dll"文件组成的第三方库

c++ - gdb类是不完整的类型,直到我在类构造函数中设置断点?

Javascript 正确引用值

python - 有没有等同于 Perl 中取消引用的 Python?

c++ - 了解返回字符串引用的函数中的 "const"

c++ - 在 [] 运算符的情况下,为 unordered_map 中的元素设置默认构造函数

c++ - 当您将引用分配给新创建的堆栈分配对象时会发生什么?