Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误C2679:二进制'=';:未找到接受类型为';的右操作数的运算符;设置<;ElemType>';_C++_Struct - Fatal编程技术网

C++ 错误C2679:二进制'=';:未找到接受类型为';的右操作数的运算符;设置<;ElemType>';

C++ 错误C2679:二进制'=';:未找到接受类型为';的右操作数的运算符;设置<;ElemType>';,c++,struct,C++,Struct,我阅读了六篇与此错误相关的论坛帖子,大多数是由于字符串声明引起的,其余的与此问题无关 此错误出现在接收输入字符串的程序中,将其与字符串列表进行比较,然后返回接近匹配的字符串。这个简单的解释是要点,实际的实现还有一点需要说明 在编译并运行的测试实现中,我使用了这行代码 Set<Lexicon::CorrectionT> matches = lex.suggestCorrections(line, maxDistance); 通过在词典::MatchesT匹配集中定义Correctio

我阅读了六篇与此错误相关的论坛帖子,大多数是由于字符串声明引起的,其余的与此问题无关

此错误出现在接收输入字符串的程序中,将其与字符串列表进行比较,然后返回接近匹配的字符串。这个简单的解释是要点,实际的实现还有一点需要说明

在编译并运行的测试实现中,我使用了这行代码

Set<Lexicon::CorrectionT> matches = lex.suggestCorrections(line, maxDistance);
通过在
词典::MatchesT匹配集
中定义
CorrectionT
更正,并在前面的函数中定义
匹配集
,然后将其作为引用传递
MatchesT
包含
line
maxDistance
的字段

据我所知,这两行代码是相同的,只是我使用的方法不同

那么,为什么我会得到这个错误“error C2679:binary'=':找不到接受类型为“Set”的右操作数的运算符”

据我所知,这两行代码是相同的,只是我使用的方法不同

不,他们完全不同;一个实例化一个新对象,调用
Set
的复制构造函数;另一个将右侧的对象复制到左侧的(已创建)对象,调用赋值运算符,由于某种原因,赋值运算符不可用


它是否已在
集中实施?什么类型是
匹配集。更正
和什么返回类型具有
建议更正

匹配集的确切类型是什么。更正
?更正T-@Matteo Italia已更正,正如我写的问题变得明显。左边是一个集合,右边是一个结构
matchSet.corrections = lex.suggestCorrections(matchSet);