I have created a class with student details(name and id) and I want to use the object of that class as key value to map. 
I have some questions

1. I am getting error while compiling this code. Kindly tell me the solution for this?
2. As map is ordered, here I have object as a key value and it has both string and number based on what the key value will get sorted?
3. I have used 

```
cout<<(*ii).first<<'\t'<<(*ii).second<<endl;

```

to print the value. Is that the correct way to print the value of class object

```
( (*ii).first)?

```

Kindly find my code below

```
#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;
}

```