转自:http://bbs.youkuaiyun.com/topics/370231248
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
owenliang@linux-6v95:~/csdn/cAndCpp> cat main.cpp #include <iostream> #include <map> using namespace std; struct Point { int x,y; //default copy constrctor and operator = bool operator< ( const Point &p) const { if (x<p.x) { return true ; } else if (x>p.x) { return false ; } return y<p.y; } }; typedef int Index; map<Point,Index> map4Test; int main() { Point cases[]= { {1,2},{2,4},{4,4},{1,5},{2,7},{9,9},{3,5},{3,4} }; for ( int i=0;i< sizeof (cases)/ sizeof (Point);++i) { map4Test.insert(make_pair(cases[i],i)); } for ( int i=0;i< sizeof (cases)/ sizeof (Point);++i) { map<Point,Index>::iterator iter=map4Test.find(cases[i]); if (iter!=map4Test.end()) { cout<< "(" <<iter->first.x<< "," <<iter->first.y<< ") index is :" <<iter->second<<endl; } } return 0; } owenliang@linux-6v95:~/csdn/cAndCpp> main (1,2) index is :0 (2,4) index is :1 (4,4) index is :2 (1,5) index is :3 (2,7) index is :4 (9,9) index is :5 (3,5) index is :6 (3,4) index is :7 owenliang@linux-6v95:~/csdn/cAndCpp> |