gpt4 book ai didi

c++ - 二进制 '==' : no operator found which takes a left-hand operand of type 'std::string' (or there is no acceptable conversion)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:29 24 4
gpt4 key购买 nike

我正在编写一个比较 std::strings 的模板类函数。 std::string 是模板参数。我的问题是我无法用“==”运算符比较两个 const 字符串,然后我想我创建了两个非常量临时字符串变量来执行比较,但它仍然无法编译。不知道为什么。

类 VGraph 被实例化为 VGraph<std::string, std::string> myGraph;

template <typename V, typename E>
size_t VGraph<V, E>::find(const V& vert)
{
V temp = vert; // (1)
for (size_t i=0; i<graph.size(); i++)
{
V noneConst = graph[i].getVertex(); // (2)
if (temp==noneConst)// I think broblem is here, and tried to fix using (1)(2)
return i;
}
return graph.size();
}

相关函数原型(prototype)

template <typename V, typename E>
const V& VVertex<V, E>::getVertex();

最佳答案

你可能忘记了一个明确的:

#include <string>

std::string 类由您包含的另一个 header 定义,但不是运算符 ==

关于c++ - 二进制 '==' : no operator found which takes a left-hand operand of type 'std::string' (or there is no acceptable conversion),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com