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“类型的左操作数的运算符相关推荐

  1. 【C++】c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)

    [C++]c++编译错误-- C2678 二进制"=": 没有找到接受"_Ty"类型的左操作数的运算符(或没有可接受的转换) 代码: //by 鸟哥 rever ...

  2. c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)

    代码: //by 鸟哥 reverse引起的编译错误 //有疑问请留言或加群 1032082534 #include<iostream> #include<algorithm> ...

  3. 二进制“==”: 没有找到接受“XX”类型的左操作数的运算符(或没有可接受的转换)

    项目场景: 自定义数据结构,进行内存数据的一些遍历等(QList等存储) 问题描述 因为出现==无法找到可接受的转换,那么你一定会像我一样,找==符号,一个项目里==符号那么多,要找到对应的对象==, ...

  4. C++ 没有找到接受const _Ty类型的左操作数的运算符

    在使用STL中的count(const )算法时报错没有找到接受const _Ty类型的左操作数的运算符, 原因是 使用自己创建的双向链表类没有重载左运算符== ,添加上重载运算即可. bool op ...

  5. ERROR:C2678 二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)

    [1]复现问题 为了更精确的分析,先用最简单的示例复现此错误场景,代码如下: #include <map> #include <string>struct Section {i ...

  6. QT中QSet容器报错: error: C2678: 二进制“==”: 没有找到接受“const Key类型的左操作数的运算符。

    该报错定位到qHash.h里.问题出在使用QSet存放了自定义的类. 解决方法:在类外重载(==)操作符和重写全局函数qHash. 具体如下: 头文件: //操作符重载(==) bool operat ...

  7. 错误 C2679 二进制“=”: 没有找到接受“const _Ty”类型的右操作数的运算符(或没有可接受的转换)的一种情况发生的错误

    错误 C2679 二进制"=": 没有找到接受"const _Ty"类型的右操作数的运算符(或没有可接受的转换 记录一下自己写代码出现的错误. 问题 写关于复数 ...

  8. C2679 二进制 没有找到接受 std::string 类型的右操作数的运算符(或没有可接受的转换)

    在VS上打代码,结果出现了上面这个错误 很奇怪,以前在其他IDE上这么写都没有问题,不知道为什么在VS写就出现了这个错误,我一开始以为是我的代码的问题.可是怎么想都没有想通. 甚至,我自己在main函 ...

  9. Scanner如何接受char类型的数据

    Scanner如何接受char类型的数据 Scanner sc=new Scanner(System.in); char t =sc.next().charAt(0); System.out.prin ...

最新文章

  1. 内网穿透和内网映射区别是什么?
  2. 利用Android Camera2 的照相机api 实现 实时的图像采集与预览
  3. linux共享磁盘给指定ip,linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,...
  4. win7优化设置_5项优化,至少提升20%!
  5. Extjs格式化时间
  6. 关于 html 中 table 表格 tr,td 的高度和宽度
  7. app浮层html,App设计之五:弹窗与浮层
  8. 手机序列号和IMEI号的区别
  9. Unity webGl 鼠标手指触屏控制相机围绕物体 360度旋转
  10. banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
  11. php 字符串放到数组中,在PHP中将字符串转换为数组(Converting string into array in php)...
  12. (按色谱固定相基质分)液相色谱柱的分类
  13. 声扬科技声纹识别技术,为工商银行构建多模态反欺诈能力
  14. AI时代-人工智能入学指南
  15. 【104】ntvdm.exe占内存极大的问题
  16. dnf剑魂buff等级上限_DNF体验服快讯—剑魂加入25开关/25仔变34仔/国庆版本内容前瞻...
  17. Visual Studio2019下载安装
  18. 乘员舱热舒适度和车辆能量管理云技术研讨会圆满结束!
  19. 计算机专业技能学习表现总体评价,【计算机专业论文】中职学校计算机专业课堂教学评价(共2323字)...
  20. 发送验证码-阿里云短信服务

热门文章

  1. c语言boy,cboy
  2. vim-python怎么用_技术|如何在使用 Vim 时访问/查看 Python 帮助
  3. 小白如何进入IT行业及如何选择培训机构
  4. 使用 git add -p 整理 patch
  5. 智慧工地数字化管理系统助力工程项目管理强管提效
  6. 公司股权分配的七大简明实操建议
  7. UGC、元宇宙概念、与迷你世界玩法
  8. Access key id should not be null or empty.
  9. 不一样的厦门,不一样的旅行!
  10. 大话循环神经网络(RNN)