我创建了一个包含学生详细信息(姓名和 ID)的类,我想使用该类的对象作为映射的键值。我有一些问题
编译此代码时出现错误。请告诉我解决方案?
由于 map 是有序的,这里我将对象作为键值,它同时具有字符串和数字,基于键值将被排序的内容?
我用过
cout<<(*ii).first<<'\t'<<(*ii).second<<endl;
打印值。这是打印类对象值的正确方法吗
( (*ii).first)?
请在下面找到我的代码
#include<iostream>
#include<map.h>
#include<utility>
#include<string.h>
using namespace std;
class A
{
private:
char name[10];
int id_no;
public:
A(char *myname,int no):id_no(no)
{
strcpy(name,myname);
}
void output()
{
cout<<name<<'\t'<<id_no<<endl;
}
};
int main()
{
map<A,int> e;
A a("abc",10);
A b("xyz",1);
e.insert(pair<A,int>(a,123));
e.insert(pair<A,int>(b,345));
for(map<A,int>::iterator ii = e.begin(); ii!= e.end(); ii++)
{
cout<<(*ii).first<<"rank is"<<(*ii).second<<endl;
}
return 0;
}