diff options
| author | Gloria Mundi <gloria@gloria-mundi.eu> | 2024-03-15 01:48:00 +0100 |
|---|---|---|
| committer | Gloria Mundi <gloria@gloria-mundi.eu> | 2024-03-15 01:48:00 +0100 |
| commit | e9958381801bf44fd0635aaa1e68541b21e193e0 (patch) | |
| tree | e463b44786fc02e332e4cc205654858f95820105 | |
| parent | 7e24d9d392aff890981f13c299b283189d94a75d (diff) | |
fix persistent and add test
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | datastructures/persistent.cpp | 2 | ||||
| -rw-r--r-- | datastructures/test/persistent.cpp | 10 |
3 files changed, 14 insertions, 1 deletions
@@ -2,6 +2,7 @@ TESTS = \ datastructures/test/fenwickTree.test \ datastructures/test/fenwickTree2.test \ datastructures/test/monotonicConvexHull.test \ + datastructures/test/persistent.test \ graph/test/binary_lifting.test \ graph/test/LCA_sparse.test @@ -43,6 +44,8 @@ datastructures/test/fenwickTree2.test: datastructures/test/fenwickTree2.cpp \ datastructures/test/monotonicConvexHull.test: \ datastructures/test/monotonicConvexHull.cpp \ datastructures/monotonicConvexHull.cpp +datastructures/test/persistent.test: datastructures/test/persistent.cpp \ + datastructures/persistent.cpp graph/test/binary_lifting.test: graph/test/binary_lifting.cpp \ graph/binary_lifting.cpp graph/test/util.cpp graph/test/LCA_sparse.test: graph/test/LCA_sparse.cpp \ diff --git a/datastructures/persistent.cpp b/datastructures/persistent.cpp index 0a65a79..4093cdc 100644 --- a/datastructures/persistent.cpp +++ b/datastructures/persistent.cpp @@ -7,7 +7,7 @@ struct persistent { : time(time), data(1, {time, value}) {}
T get(int t) {
- return prev(upper_bound(all(data), {t+1, {}}))->second;
+ return prev(upper_bound(all(data), pair{t+1, T{}}))->second;
}
int set(T value) {
diff --git a/datastructures/test/persistent.cpp b/datastructures/test/persistent.cpp new file mode 100644 index 0000000..d98569b --- /dev/null +++ b/datastructures/test/persistent.cpp @@ -0,0 +1,10 @@ +#include "../persistent.cpp" + +int main() { + int time = 0; + persistent<int> p(time, 0); + p.set(1); + int t1 = time; + p.set(2); + assert(p.get(t1) == 1); +} |
