-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmap2.tpp
More file actions
86 lines (64 loc) · 1.86 KB
/
map2.tpp
File metadata and controls
86 lines (64 loc) · 1.86 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//==============================================================================
MAP2_ _MAP2::map2()
// Constructor from empty
{
assert(typeid(T1)!=typeid(T2));
T10 = T1();
T20 = T2();
}
//------------------------------------------------------------------------------
MAP2_ _MAP2::map2(const map2 & X)
// Copy constructor
{
T1_2_T2_map = X.T1_2_T2_map;
T2_2_T1_map = X.T2_2_T1_map;
}
//------------------------------------------------------------------------------
MAP2_ T2 _MAP2::Add(T1 v1,T2 v2)
{
T1_2_T2_map[v1] = v2;
T2_2_T1_map[v2] = v1;
return v2;
}
//------------------------------------------------------------------------------
MAP2_ T1 _MAP2::Add(T2 v1,T1 v2)
{
T1_2_T2_map[v2] = v1;
T2_2_T1_map[v1] = v2;
return v2;
}
//------------------------------------------------------------------------------
MAP2_ void _MAP2::clear()
{
T1_2_T2_map.clear();
T2_2_T1_map.clear();
}
//------------------------------------------------------------------------------
MAP2_ bool _MAP2::Has(T1 v1)
{
return T1_2_T2_map.find(v1)!=T1_2_T2_map.end();
}
//------------------------------------------------------------------------------
MAP2_ bool _MAP2::Has(T2 v2)
{
return T2_2_T1_map.find(v2)!=T2_2_T1_map.end();
}
//------------------------------------------------------------------------------
MAP2_ unsigned int _MAP2::size()
{
assert(T1_2_T2_map.size()==T2_2_T1_map.size());
return T1_2_T2_map.size();
}
//------------------------------------------------------------------------------
MAP2_ T2 & _MAP2::operator[](T1 v1)
{
if(T1_2_T2_map.find(v1)==T1_2_T2_map.end()) return T20;
return T1_2_T2_map[v1];
}
//------------------------------------------------------------------------------
MAP2_ T1 & _MAP2::operator[](T2 v2)
{
if(T2_2_T1_map.find(v2)==T2_2_T1_map.end()) return T10;
return T2_2_T1_map[v2];
}
//------------------------------------------------------------------------------