From 386f1b988d8b9b41a88791cbd81604fbe24734a8 Mon Sep 17 00:00:00 2001 From: liushuai06 Date: Fri, 16 Jul 2021 00:00:36 +0800 Subject: [PATCH 1/5] Add FlatMap example code --- docs/cn/flatmap.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/cn/flatmap.md b/docs/cn/flatmap.md index 5d93b9cb06..9705ddc271 100644 --- a/docs/cn/flatmap.md +++ b/docs/cn/flatmap.md @@ -4,7 +4,29 @@ FlatMap - Maybe the fastest hashmap, with tradeoff of space. # EXAMPLE -`#include ` +```c++ +#include +#include + +butil::FlatMap map; +// bucket_count: initial count of buckets, big enough to avoid resize. +// load_factor: element_count * 100 / bucket_count, 80 as default. +int bucket_count = 1000; +int load_factor = 80; +map.init(bucket_count, load_factor); +map.insert(10, "hello"); +map[20] = "world"; +std::string* value = map.seek(20); +if (value != NULL) { + LOG(TRACE) << "Got the value=" << *value; +} else { + LOG(FATAL) << "Impossible, we've just put the value in"; +} +LOG(TRACE) << "All elements of the map: "; +for (butil::FlatMap::const_iterator it = map.begin(); it != map.end(); ++it) { + LOG(TRACE) << it->first << " : " << it->second; +} +``` # DESCRIPTION From 765317e105d0ef45f83e707439dd584af957ba74 Mon Sep 17 00:00:00 2001 From: liushuai06 Date: Fri, 16 Jul 2021 10:09:40 +0800 Subject: [PATCH 2/5] update FlatMap example code --- docs/cn/flatmap.md | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/docs/cn/flatmap.md b/docs/cn/flatmap.md index 9705ddc271..5a9cd15986 100644 --- a/docs/cn/flatmap.md +++ b/docs/cn/flatmap.md @@ -6,25 +6,31 @@ FlatMap - Maybe the fastest hashmap, with tradeoff of space. ```c++ #include +#include #include -butil::FlatMap map; -// bucket_count: initial count of buckets, big enough to avoid resize. -// load_factor: element_count * 100 / bucket_count, 80 as default. -int bucket_count = 1000; -int load_factor = 80; -map.init(bucket_count, load_factor); -map.insert(10, "hello"); -map[20] = "world"; -std::string* value = map.seek(20); -if (value != NULL) { - LOG(TRACE) << "Got the value=" << *value; -} else { - LOG(FATAL) << "Impossible, we've just put the value in"; -} -LOG(TRACE) << "All elements of the map: "; -for (butil::FlatMap::const_iterator it = map.begin(); it != map.end(); ++it) { - LOG(TRACE) << it->first << " : " << it->second; +void flatmap_example( + butil::FlatMap map; + // bucket_count: initial count of buckets, big enough to avoid resize. + // load_factor: element_count * 100 / bucket_count, 80 as default. + int bucket_count = 1000; + int load_factor = 80; + map.init(bucket_count, load_factor); + map.insert(10, "hello"); + map[20] = "world"; + std::string* value = map.seek(20); + CHECK_EQ(true, value != NULL); + + CHECK_EQ(2UL, map.size()); + CHECK_EQ(0UL, map.erase(30)); + CHECK_EQ(1UL, map.erase(10)); + + LOG(TRACE) << "All elements of the map:"; + for (butil::FlatMap::const_iterator it = map.begin(); it != map.end(); ++it) { + LOG(INFO) << it->first << " : " << it->second; + } + map.clear(); + CHECK_EQ(0UL, map.size()); } ``` From 05bf4a76c1ae1618c0651df9c5fbd02ded6d6344 Mon Sep 17 00:00:00 2001 From: liushuai06 Date: Fri, 16 Jul 2021 15:50:46 +0800 Subject: [PATCH 3/5] update FlatMap example code --- docs/cn/flatmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cn/flatmap.md b/docs/cn/flatmap.md index 5a9cd15986..f91dff2ef8 100644 --- a/docs/cn/flatmap.md +++ b/docs/cn/flatmap.md @@ -25,7 +25,7 @@ void flatmap_example( CHECK_EQ(0UL, map.erase(30)); CHECK_EQ(1UL, map.erase(10)); - LOG(TRACE) << "All elements of the map:"; + LOG(INFO) << "All elements of the map:"; for (butil::FlatMap::const_iterator it = map.begin(); it != map.end(); ++it) { LOG(INFO) << it->first << " : " << it->second; } From 3d523ab6a03b44db763183e787943947a914d053 Mon Sep 17 00:00:00 2001 From: liushuai06 Date: Sat, 17 Jul 2021 20:16:36 +0800 Subject: [PATCH 4/5] update FlatMap example code --- docs/cn/flatmap.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/cn/flatmap.md b/docs/cn/flatmap.md index f91dff2ef8..112b2a47ea 100644 --- a/docs/cn/flatmap.md +++ b/docs/cn/flatmap.md @@ -9,7 +9,7 @@ FlatMap - Maybe the fastest hashmap, with tradeoff of space. #include #include -void flatmap_example( +void flatmap_example() { butil::FlatMap map; // bucket_count: initial count of buckets, big enough to avoid resize. // load_factor: element_count * 100 / bucket_count, 80 as default. @@ -19,7 +19,7 @@ void flatmap_example( map.insert(10, "hello"); map[20] = "world"; std::string* value = map.seek(20); - CHECK_EQ(true, value != NULL); + CHECK(value != NULL) CHECK_EQ(2UL, map.size()); CHECK_EQ(0UL, map.erase(30)); From 187ef43079784b2592d305b9936a408a15cd2e7b Mon Sep 17 00:00:00 2001 From: liushuai06 Date: Sat, 17 Jul 2021 21:50:24 +0800 Subject: [PATCH 5/5] update FlatMap example code --- docs/cn/flatmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cn/flatmap.md b/docs/cn/flatmap.md index 112b2a47ea..913e052b1d 100644 --- a/docs/cn/flatmap.md +++ b/docs/cn/flatmap.md @@ -19,7 +19,7 @@ void flatmap_example() { map.insert(10, "hello"); map[20] = "world"; std::string* value = map.seek(20); - CHECK(value != NULL) + CHECK(value != NULL); CHECK_EQ(2UL, map.size()); CHECK_EQ(0UL, map.erase(30));