转自:http://bbs.csdn.net/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 :7owenliang@linux-6v95:~/csdn/cAndCpp> |

本文介绍如何在C++中使用自定义结构体作为map的键,并实现比较运算符以确保正确排序。通过示例展示了如何插入元素并检索它们的索引。
2884

被折叠的 条评论
为什么被折叠?



