str/maps: Add commonly used cheaper string map

These maps allow for the use of string_views to find elements so we
don't need to construct std::strings for lookups.

Change-Id: I92040b920bf8e231346bebfe9afa59f1a37b8af5
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/test/meson.build b/test/meson.build
index 51bc288..c4e8a4d 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -12,6 +12,7 @@
   'signal': [stdplus_dep, gtest_main_dep],
   'str/cat': [stdplus_dep, gtest_main_dep],
   'str/cexpr': [stdplus_dep, gtest_main_dep],
+  'str/maps': [stdplus_dep, gmock_dep, gtest_main_dep],
   'util/cexec': [stdplus_dep, gtest_main_dep],
   'zstring': [stdplus_dep, gtest_main_dep],
   'zstring_view': [stdplus_dep, gtest_main_dep],
diff --git a/test/str/maps.cpp b/test/str/maps.cpp
new file mode 100644
index 0000000..e3ff1d6
--- /dev/null
+++ b/test/str/maps.cpp
@@ -0,0 +1,14 @@
+#include <stdplus/str/maps.hpp>
+
+#include <gtest/gtest.h>
+
+namespace stdplus
+{
+
+TEST(StringMaps, Basic)
+{
+    string_umap<int> a = {{"hi", 2}};
+    EXPECT_EQ(2, a.find(std::string_view("hi"))->second);
+}
+
+} // namespace stdplus