I attempted to do something like this but it does not compile:
class point
{
    public:
        int x;
        int y;
};
int main()
{
    vector<point> vp1;
    vector<point> vp2;
    vector<point> vp3;
    map < vector<point>, int > m;
    m[vp1] = 1;
    m[vp2] = 2;
    m[vp3] = 3;
    map < vector<point>, int >::iterator it;
    for (it=m.begin(); it!=m.end(); it++)
    {
        cout<<m[it->first]<<endl;
    }
    return 0;
}