C2678 二进制“<”: 没有找到接受“const ***”类型的左操作数的运算符解决办法
正确代码如下:
#include<iostream>
#include<string>
#include<map> using namespace std;
/*仿函数的应用*/
typedef struct tagStudentinfo
{
int niD;
string strName;
}Studentinfo, *PStudentinfo; //学生信息 class sort
{
public:
bool operator() (Studentinfo const &_A, Studentinfo const &_B) const
{
if (_A.niD < _B.niD)
return true;
if (_A.niD == _B.niD)
return _A.strName.compare(_B.strName) < 0;
return false;
}
};
void main() {
map<int,Studentinfo> mapStudent;
map<int,Studentinfo>::iterator mit; Studentinfo student1;
student1.niD = 1;
student1.strName = "cc";
mapStudent.insert(pair<int,Studentinfo>(80,student1)); Studentinfo student2;
student2.niD = 1;
student2.strName = "aa";
mapStudent.insert(pair<int,Studentinfo>(90,student2)); Studentinfo student3;
student3.niD = 2;
student3.strName = "dd";
mapStudent.insert(pair<int,Studentinfo>(100,student3)); cout << "students info:" << endl;;
for (mit = mapStudent.begin(); mit != mapStudent.end(); mit++) {
cout << mit->second.niD<< "," << mit->second.strName<<"," << mit->first << endl;
}
system("pause");
}
重写了operator()方法。
先是把Studentinfo类放在了左边,报错,将int放在左边之后编译通过。
把基本类型int,double,string,vector等放在左边,方便map进行排序。
感觉是oprator()方法重载的错误,目前还没找到更好的解决办法,之后找到了再进行补充。
C2678 二进制“<”: 没有找到接受“const ***”类型的左操作数的运算符解决办法的更多相关文章
- 错误 error C2678: 二进制“<”: 没有找到接受“const card”类型的左操作数的运算符(或没有可接受的转换)
		
错误出现的地方如下 而我又重载了<运算符,但是我没有将<运算符重载函数定义成const类型,此处是const _Ty&,不可以调用非const成员函数 而且,一般而言,像<, ...
 - error C2678: 二进制“+”: 没有找到接受“const char [22]”类型的左操作数的运算符(或没有可接受的转换)没有与这些操作数匹配的“+”运算符
		
错误:没有与这些操作数匹配的“+”运算符,操作数类型为const char [20]+CString 分析原因:其提示操作数类型为const char [20]+CString 可见是类型有问题 故加 ...
 - C2678	二进制“>>”: 没有找到接受“std::stringstream”类型的左操作数的运算符(或没有可接受的转换)
		
C2678 二进制“>>”: 没有找到接受“std::stringstream”类型的左操作数的运算符(或没有可接受的转换)
 - 错误 C2679二进制“没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换
		
错误 C2679二进制“没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换 严重性 代码 说明 项目 文件 行 禁止显示状态错误 C2679 二进制“<<”: ...
 - “sockaddr”: “struct”类型重定义的错误的解决办法《转》
		
原帖地址:https://blog.csdn.net/clever101/article/details/100163301 windows.h和winsock2.h存在有类型重定义,往往体现在VC程 ...
 - 单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法
		
using Microsoft.VisualStudio.TestTools.UnitTesting; 如果该DLL应用的是 C:\Program Files\Microsoft Visual Stu ...
 - 无法cin一个string 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
		
头文件#include<string>不能写成#include<string.h>
 - Swift中集合类型indexOf(Element)提示错误的解决办法
		
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 初学Swift,会遇到一些潜在的小问题,比如我们在某个集合对象 ...
 - 可变长参数列表误区与陷阱——va_arg不可接受的类型
		
可变长参数列表误区与陷阱--va_arg不可接受的类型 实现一个有可变长参数列表函数的时候,会使用到stdarg.h(这里不讨论varargs.h)中提供的宏. 例如,我们要实现一个简易的my_pri ...
 
随机推荐
- C#控制台窗口禁用关闭按钮
			
1 public class Program 2 { 3 #region 禁用控制台黑窗口的关闭按钮 part1 4 5 private const int MF_BYCOMMAND = 0x0000 ...
 - python库安装中Microsoft Visual C++ is required解决方法
			
在用pycharm过程中,用pip去安装一些第三方包的时候会出现如下错误,缺少C++编译器,因为有些程序需要使用,没有C++接口会报错,查阅相关资料及自己的解决方案 error: Microsoft ...
 - C#学习路线和感想
			
C#我目前是针对我所需要的部分进行有选择的学习,我看了<C#程序设计经典300例>,发现这个语言还是很有趣的,企业实用性很强,如果以后想做企业这一块可以学学.
 - 微信小程序发布列表页面处理
			
wxml: <!--pages/good_index/good_index.wxml--> <view class='list'> <block wx:for='{{in ...
 - [树]LeetCode589 N叉树的前序遍历
			
LeetCode N叉树的前序遍历 前言:树的前中后序遍历已经是很经典的题目的,要么递归要么迭代,不过还是比较习惯于递归的写法 TITLE 给定一个 n 叉树的根节点 root ,返回 其节点值的 前 ...
 - 【公告】淘宝 npm 域名即将切换 && npmmirror 重构升级
			
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前言 本文将包括两部分内容: 淘宝 npm 域名即将停止解析 npmmirror 镜像站大重构升级 原淘宝 npm 域名即将停止解析 正如在< ...
 - Linux 环境下安装 Nexus 私服存储库
			
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 一.nexus私服存储库简介 Nexus 是一个强大的maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问.,还可以用来创建yum ...
 - eclipse中的项目如何打成war包
			
war包即Web归档文件,将Web项目打成war包可以直接拷贝到Web服务器发布目录(例如Tomcat服务器webapps目录 ),当Tomcat启动后该压缩文件自动解压,war包方便了web工程的发 ...
 - 前端知识之html基础
			
前端知识之html内容 web服务本质 浏览器发送请求-->http协议-->服务端接收请求-->服务端返回响应-->服务端把html文件内容发给浏览器-->浏览器渲染页 ...
 - phpcms 2008 变量覆盖漏洞
			
一. 启动环境 1.双击运行桌面phpstudy.exe软件 2.点击启动按钮,启动服务器环境 二.代码审计 1.双击启动桌面Seay源代码审计系统软件 3.点击新建项目按钮,弹出对画框中选择(C:\ ...