From e7e07f42b336bb7b5c488eb3bcc6397c0a2a03f4 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 24 八月 2020 16:36:09 +0800
Subject: [PATCH] fix conflict

---
 test/test_map2.c |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/test/test_map2.c b/test/test_map2.c
new file mode 100644
index 0000000..86ed3f0
--- /dev/null
+++ b/test/test_map2.c
@@ -0,0 +1,79 @@
+#include <iomanip>
+#include <iostream>
+#include <map>
+#include <string>
+ 
+using namespace std::literals;
+ 
+template<typename It>
+void printInsertionStatus(It it, bool success)
+{
+    std::cout << "Insertion of " << it->first << (success ? " succeeded\n" : " failed\n");
+}
+ 
+int main()
+{
+    std::map<std::string, float> karasunoPlayerHeights;
+ 
+    // Overload 3: insert from rvalue reference
+    const auto [it_hinata, success] = karasunoPlayerHeights.insert({"Hinata"s, 162.8});
+    printInsertionStatus(it_hinata, success);
+ 
+    {
+        // Overload 1: insert from lvalue reference
+        const auto [it, success2] = karasunoPlayerHeights.insert(*it_hinata);
+        printInsertionStatus(it, success2);
+    }
+    {
+        // Overload 2: insert via forwarding to emplace
+        const auto [it, success] = karasunoPlayerHeights.insert({"Kageyama", 180.6});
+        printInsertionStatus(it, success);
+    }
+ 
+    {
+        // Overload 6: insert from rvalue reference with positional hint
+        const std::size_t n = std::size(karasunoPlayerHeights);
+        const auto it = karasunoPlayerHeights.insert(it_hinata, {"Azumane"s, 184.7});
+        printInsertionStatus(it, std::size(karasunoPlayerHeights) != n);
+    }
+    {
+        // Overload 4: insert from lvalue reference with positional hint
+        const std::size_t n = std::size(karasunoPlayerHeights);
+        const auto it = karasunoPlayerHeights.insert(it_hinata, *it_hinata);
+        printInsertionStatus(it, std::size(karasunoPlayerHeights) != n);
+    }
+    {
+        // Overload 5: insert via forwarding to emplace with positional hint
+        const std::size_t n = std::size(karasunoPlayerHeights);
+        const auto it = karasunoPlayerHeights.insert(it_hinata, {"Tsukishima", 188.3});
+        printInsertionStatus(it, std::size(karasunoPlayerHeights) != n);
+    }
+ 
+    auto node_hinata = karasunoPlayerHeights.extract(it_hinata);
+    std::map<std::string, float> playerHeights;
+ 
+    // Overload 7: insert from iterator range
+    playerHeights.insert(std::begin(karasunoPlayerHeights), std::end(karasunoPlayerHeights));
+ 
+    // Overload 8: insert from initializer_list
+    playerHeights.insert({{"Kozume"s, 169.2}, {"Kuroo", 187.7}});
+ 
+ 
+    // Overload 9: insert node
+    const auto status = playerHeights.insert(std::move(node_hinata));
+    printInsertionStatus(status.position, status.inserted);
+ 
+    node_hinata = playerHeights.extract(status.position);
+    {
+        // Overload 10: insert node with positional hint
+        const std::size_t n = std::size(playerHeights);
+        const auto it = playerHeights.insert(std::begin(playerHeights), std::move(node_hinata));
+        printInsertionStatus(it, std::size(playerHeights) != n);
+    }
+ 
+ 
+    // Print resulting map
+    std::cout << std::left << '\n';
+    for (const auto& [name, height] : playerHeights)
+        std::cout << std::setw(10) << name << " | " << height << "cm\n";
+}
\ No newline at end of file

--
Gitblit v1.8.0