44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
|
#include <iostream>
|
||
|
#include <nlohmann/json.hpp>
|
||
|
|
||
|
// simple output function
|
||
|
template<typename Map>
|
||
|
void output(const char* prefix, const Map& m)
|
||
|
{
|
||
|
std::cout << prefix << " = { ";
|
||
|
for (auto& element : m)
|
||
|
{
|
||
|
std::cout << element.first << ":" << element.second << ' ';
|
||
|
}
|
||
|
std::cout << "}" << std::endl;
|
||
|
}
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
// create and fill two maps
|
||
|
nlohmann::ordered_map<std::string, std::string> m_ordered;
|
||
|
m_ordered["one"] = "eins";
|
||
|
m_ordered["two"] = "zwei";
|
||
|
m_ordered["three"] = "drei";
|
||
|
|
||
|
std::map<std::string, std::string> m_std;
|
||
|
m_std["one"] = "eins";
|
||
|
m_std["two"] = "zwei";
|
||
|
m_std["three"] = "drei";
|
||
|
|
||
|
// output: m_ordered is ordered by insertion order, m_std is ordered by key
|
||
|
output("m_ordered", m_ordered);
|
||
|
output("m_std", m_std);
|
||
|
|
||
|
// erase and re-add "one" key
|
||
|
m_ordered.erase("one");
|
||
|
m_ordered["one"] = "eins";
|
||
|
|
||
|
m_std.erase("one");
|
||
|
m_std["one"] = "eins";
|
||
|
|
||
|
// output: m_ordered shows newly added key at the end; m_std is again ordered by key
|
||
|
output("m_ordered", m_ordered);
|
||
|
output("m_std", m_std);
|
||
|
}
|