#include <iostream>
#include <string>
#include <map>
struct Data
{
std::string s;
int number;
Data(std::string ss, int n) : s(std::move(ss)), number(n){}
Data(Data&& rhs) : s(std::move(rhs.s)), number(rhs.number){}
Data(Data const& rhs):s(rhs.s), number(rhs.number){}
};
int main()
{
std::map<std::string,Data> m_data;
auto lamda = [&m_data](std::string const&k, int v)->void {
if(m_data.find(k) == m_data.end()){
m_data.emplace(k,Data(k,v));
}
};
lamda("1234", 1);
lamda("12C7", 2);
lamda("123F", 3);
lamda("1234", 4);
lamda("jklh", 5);
for(auto& v : m_data)
{
std::cout << v.second.s << "," << v.second.number << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgpzdHJ1Y3QgRGF0YQp7CiAgc3RkOjpzdHJpbmcgczsKICBpbnQgbnVtYmVyOwogIERhdGEoc3RkOjpzdHJpbmcgc3MsIGludCBuKSA6IHMoc3RkOjptb3ZlKHNzKSksIG51bWJlcihuKXt9CiAgRGF0YShEYXRhJiYgcmhzKSA6IHMoc3RkOjptb3ZlKHJocy5zKSksIG51bWJlcihyaHMubnVtYmVyKXt9CiAgRGF0YShEYXRhIGNvbnN0JiByaHMpOnMocmhzLnMpLCBudW1iZXIocmhzLm51bWJlcil7fQp9OwoKaW50IG1haW4oKQp7CiAgc3RkOjptYXA8c3RkOjpzdHJpbmcsRGF0YT4gbV9kYXRhOwogIGF1dG8gbGFtZGEgPSBbJm1fZGF0YV0oc3RkOjpzdHJpbmcgY29uc3QmaywgaW50IHYpLT52b2lkIHsKICAgIGlmKG1fZGF0YS5maW5kKGspID09IG1fZGF0YS5lbmQoKSl7CiAgICAgIG1fZGF0YS5lbXBsYWNlKGssRGF0YShrLHYpKTsKICAgIH0KICB9OwoKICBsYW1kYSgiMTIzNCIsIDEpOwogIGxhbWRhKCIxMkM3IiwgMik7CiAgbGFtZGEoIjEyM0YiLCAzKTsKICBsYW1kYSgiMTIzNCIsIDQpOwogIGxhbWRhKCJqa2xoIiwgNSk7CgogIGZvcihhdXRvJiB2IDogbV9kYXRhKQogIHsKICAgIHN0ZDo6Y291dCA8PCB2LnNlY29uZC5zIDw8ICIsIiA8PCB2LnNlY29uZC5udW1iZXIgPDwgc3RkOjplbmRsOwogIH0KICByZXR1cm4gMDsKfQoK