summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-01-17 23:31:13 +0100
committerTyge Løvset <[email protected]>2021-01-17 23:31:13 +0100
commit92429751ed9dfaf87a5b8eb98995fa1d1f282626 (patch)
treef975151c2e1efc3ccf1c8c07d3786e720b194e18 /examples
parentb1de47b93bcc706c9846fedda33fc9c8f282dd65 (diff)
downloadSTC-modified-92429751ed9dfaf87a5b8eb98995fa1d1f282626.tar.gz
STC-modified-92429751ed9dfaf87a5b8eb98995fa1d1f282626.zip
Updated examples.
Diffstat (limited to 'examples')
-rw-r--r--examples/csmap_ex.c6
-rw-r--r--examples/tmap.cpp53
2 files changed, 56 insertions, 3 deletions
diff --git a/examples/csmap_ex.c b/examples/csmap_ex.c
index 13fbe977..32b49694 100644
--- a/examples/csmap_ex.c
+++ b/examples/csmap_ex.c
@@ -11,9 +11,9 @@ using_csset_str();
int main(int argc, char **argv)
{
csmap_i map = csmap_i_init();
- time_t seed = 123 ; // time(NULL);
+ time_t seed = time(NULL);
- size_t n = 5000000;
+ size_t n = 500000;
uint64_t mask = (1ull << 20) - 1;
csmap_i_iter_t it;
@@ -26,7 +26,7 @@ int main(int argc, char **argv)
}
}
stc64_srandom(seed);
- for (unsigned int i = 0; i < n - 50; ++i) {
+ for (unsigned int i = 0; i < n - 20; ++i) {
csmap_i_erase(&map, stc64_random() & mask);
}
diff --git a/examples/tmap.cpp b/examples/tmap.cpp
new file mode 100644
index 00000000..793ce6cc
--- /dev/null
+++ b/examples/tmap.cpp
@@ -0,0 +1,53 @@
+#include <stc/csmap.h>
+#include <stc/cstr.h>
+#include <stc/crand.h>
+#include <stdio.h>
+#include <map>
+
+using_csmap(i, int, size_t);
+//using_csset_str();
+
+#include <time.h>
+
+int main(int argc, char **argv)
+{
+ std::map<int, size_t> tmap;
+ csmap_i map = csmap_i_init();
+ csmap_i_iter_t it;
+ time_t seed = time(NULL);
+
+ size_t n = 2000000;
+ uint64_t mask = (1ull << 22) - 1;
+
+ clock_t t1 = clock();
+ stc64_srandom(seed);
+ for (size_t i = 0; i < n; ++i) {
+ uint64_t x = stc64_random() & mask;
+ tmap.emplace(x, i);
+ }
+ size_t s1 = tmap.size();
+ stc64_srandom(seed);
+ for (size_t i = 0; i < n - 50; ++i) {
+ uint64_t x = stc64_random() & mask;
+ tmap.erase(x);
+ }
+ clock_t t2 = clock();
+
+ stc64_srandom(seed);
+ for (size_t i = 0; i < n; ++i) {
+ uint64_t x = stc64_random() & mask;
+ csmap_i_emplace(&map, x, i);
+ }
+ size_t s2 = csmap_i_size(map);
+ stc64_srandom(seed);
+ for (size_t i = 0; i < n - 50; ++i) {
+ uint64_t x = stc64_random() & mask;
+ csmap_i_erase(&map, x);
+ }
+ clock_t t3 = clock();
+
+ printf("%zu %zu\n", s1, s2);
+ printf("%zu %zu\n", tmap.size(), csmap_i_size(map));
+
+ printf("time: %f %f\n", ((float)t2-t1) / CLOCKS_PER_SEC, ((float)t3-t2) / CLOCKS_PER_SEC);
+}