-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathREADME
154 lines (102 loc) · 3.09 KB
/
README
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
CppUtilibs
by R.E.M.
==============================
some utility classes written by cpp.
USAGE
==============================
check the related header file to get the usage of the classes.
check "Tester.cpp" for code example for using each class.
CLASS LIST ( IMPLEMENTED )
==============================
[[ algorithm ]]
[ BidirectionIndex ] :
this can be used as an O(1) implementation of set<int>
when the integers are aggregate in certain range.
for example, vertex set in topological graph.
[ Counter ] :
auto incremental function object.
[ Graph ] :
Geometrical Graph/Topological Graph, DirectedGraph/UndirectedGraph.
some basic algorithm on directed graph, such as
bellman-ford/dijkstra/a-star for shortest path problem,
and successive shortest path for min cost flow problem.
[ Knapsack ] :
knapsack solvers.
[ Container ] :
container wrappers.
[ String ] :
string processing algorithms.
[[ io ]]
[ File ] :
file operations.
[[ log ]]
[ Log ] :
make it easy to show log when debuging and
avoid too much log in release version.
[ Timer ] :
provide interface to check if timeout in single thread procedure.
[ Trace ] :
record program running state and dump call stack after crash.
[[ math ]]
[ Interval ] :
a range representation with some basic operations.
[ Math ] :
basic arithmetics.
[ Oscillator ] :
a number generator with an oscillating pattern.
[[ random ]]
[ Random ] :
wrap a random number generator with some simple probability distrubution.
[ Sample1 ] :
make it possible to pick one element out of a sequence of elements
by same probability without recording all of them.
[ Sample ] :
an online algorithm for sampling targetNum items from a data stream.
[[ system ]]
[ Directory ] :
portable directory operations.
[ Exception ] :
complement common exception types in STL.
[ Madro ] :
some crazy mad macros.
[ Memory ] :
memory status reporter.
[ Semaphore ] :
a useful mechanism for synchronization.
[ System ] :
unified platform dependent macros.
portable shell commands.
[ Termination ] :
program termination control.
[ ThreadPool ] :
a simple thread pool with restarting, pending and stopping.
[[ type ]]
[ Arr ] :
dynamic allocated array follows RAII idiom.
[ Convert ] :
convert between std::string and other type.
[ Double ] :
encaptured fundamental type double.
make it easier to compare two real numbers by tolerating some error.
[ LoopQueue ] :
loop queue for the cases that the max number of items in queue is known.
[ PriorityQueue ] :
priority queue implemented by bucket, red-black tree or heap.
[ VectorMD ] :
simplify multi-dimensional vector representation.
[ ZeroBasedConsecutiveIdMap ] :
a number mapping utility.
[ CombinationMap ] :
mapping a combination of items to corresponding data.
unlike the normal maps, the key is not a string or permutation.
CLASS LIST ( IN THE PLAN )
==============================
[ Integer ] :
integer without precision loss.
[ Rational ] :
rational number without precision loss.
[ Trie ] :
dictionary tree.
[ SuffixTree ] :
[ AVLTree ] :
[ RedBlackTree ] :