C2678 二进制“<“:没有找到接受“ const_Ty“类型的左操作数的运算符
C2678 二进制"<“:没有找到接受” const_Ty"类型的左操作数的运算符
运行c++程序时遇到上述错误,点击VS中的错误后发现无法定位到错误所在的代码行,参考博客https://blog.csdn.net/weixin_42330311/article/details/103012460后想到我的程序也用到了set,所以考虑是set相关语句出了问题。
通过查找发现我的程序中有set<Vector2d>
和set<int>
,而set内部默认的compare函数,可以将整数从小到大排序,故问题出在set<Vector2d>
缺乏排序函数。
参考博客https://blog.csdn.net/u012604810/article/details/79804928后,我给set<Vector2d>
定义了如下排序函数:
struct VecComp
{bool operator() (const Vector2d& vec1, const Vector2d& vec2) const {return vec1(0) < vec2(0) || (vec1(0) == vec2(0) && vec1(1) < vec2(1));}
};
然后在set<Vector2d>
类型的集合的定义和遍历中加入了上述排序函数:
set<Vector2d, VecComp> A_set_points;
set<Vector2d, VecComp> ::iterator it3;for (it3 = A_set_points.begin(); it3 != A_set_points.end(); it3++) {A_rotated_points.push_back(*it3);}
最后问题解决了
另外一种解决的思路是参考博客https://bbs.csdn.net/topics/390956178使用指针,即set<Vector2d*>
,用Vector2d*去定义变量,指针可以用<操作符比较,但这种方法本人没有尝试。
C2678 二进制“<“:没有找到接受“ const_Ty“类型的左操作数的运算符相关推荐
- 【C++】c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
[C++]c++编译错误-- C2678 二进制"=": 没有找到接受"_Ty"类型的左操作数的运算符(或没有可接受的转换) 代码: //by 鸟哥 rever ...
- c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
代码: //by 鸟哥 reverse引起的编译错误 //有疑问请留言或加群 1032082534 #include<iostream> #include<algorithm> ...
- 二进制“==”: 没有找到接受“XX”类型的左操作数的运算符(或没有可接受的转换)
项目场景: 自定义数据结构,进行内存数据的一些遍历等(QList等存储) 问题描述 因为出现==无法找到可接受的转换,那么你一定会像我一样,找==符号,一个项目里==符号那么多,要找到对应的对象==, ...
- C++ 没有找到接受const _Ty类型的左操作数的运算符
在使用STL中的count(const )算法时报错没有找到接受const _Ty类型的左操作数的运算符, 原因是 使用自己创建的双向链表类没有重载左运算符== ,添加上重载运算即可. bool op ...
- ERROR:C2678 二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)
[1]复现问题 为了更精确的分析,先用最简单的示例复现此错误场景,代码如下: #include <map> #include <string>struct Section {i ...
- QT中QSet容器报错: error: C2678: 二进制“==”: 没有找到接受“const Key类型的左操作数的运算符。
该报错定位到qHash.h里.问题出在使用QSet存放了自定义的类. 解决方法:在类外重载(==)操作符和重写全局函数qHash. 具体如下: 头文件: //操作符重载(==) bool operat ...
- 错误 C2679 二进制“=”: 没有找到接受“const _Ty”类型的右操作数的运算符(或没有可接受的转换)的一种情况发生的错误
错误 C2679 二进制"=": 没有找到接受"const _Ty"类型的右操作数的运算符(或没有可接受的转换 记录一下自己写代码出现的错误. 问题 写关于复数 ...
- C2679 二进制 没有找到接受 std::string 类型的右操作数的运算符(或没有可接受的转换)
在VS上打代码,结果出现了上面这个错误 很奇怪,以前在其他IDE上这么写都没有问题,不知道为什么在VS写就出现了这个错误,我一开始以为是我的代码的问题.可是怎么想都没有想通. 甚至,我自己在main函 ...
- Scanner如何接受char类型的数据
Scanner如何接受char类型的数据 Scanner sc=new Scanner(System.in); char t =sc.next().charAt(0); System.out.prin ...
最新文章
- 内网穿透和内网映射区别是什么?
- 利用Android Camera2 的照相机api 实现 实时的图像采集与预览
- linux共享磁盘给指定ip,linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,...
- win7优化设置_5项优化,至少提升20%!
- Extjs格式化时间
- 关于 html 中 table 表格 tr,td 的高度和宽度
- app浮层html,App设计之五:弹窗与浮层
- 手机序列号和IMEI号的区别
- Unity webGl 鼠标手指触屏控制相机围绕物体 360度旋转
- banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
- php 字符串放到数组中,在PHP中将字符串转换为数组(Converting string into array in php)...
- (按色谱固定相基质分)液相色谱柱的分类
- 声扬科技声纹识别技术,为工商银行构建多模态反欺诈能力
- AI时代-人工智能入学指南
- 【104】ntvdm.exe占内存极大的问题
- dnf剑魂buff等级上限_DNF体验服快讯—剑魂加入25开关/25仔变34仔/国庆版本内容前瞻...
- Visual Studio2019下载安装
- 乘员舱热舒适度和车辆能量管理云技术研讨会圆满结束!
- 计算机专业技能学习表现总体评价,【计算机专业论文】中职学校计算机专业课堂教学评价(共2323字)...
- 发送验证码-阿里云短信服务