fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. struct Data
  5. {
  6. std::string s;
  7. int number;
  8. Data(std::string ss, int n) : s(std::move(ss)), number(n){}
  9. Data(Data&& rhs) : s(std::move(rhs.s)), number(rhs.number){}
  10. Data(Data const& rhs):s(rhs.s), number(rhs.number){}
  11. };
  12.  
  13. int main()
  14. {
  15. std::map<std::string,Data> m_data;
  16. auto lamda = [&m_data](std::string const&k, int v)->void {
  17. if(m_data.find(k) == m_data.end()){
  18. m_data.emplace(k,Data(k,v));
  19. }
  20. };
  21.  
  22. lamda("1234", 1);
  23. lamda("12C7", 2);
  24. lamda("123F", 3);
  25. lamda("1234", 4);
  26. lamda("jklh", 5);
  27.  
  28. for(auto& v : m_data)
  29. {
  30. std::cout << v.second.s << "," << v.second.number << std::endl;
  31. }
  32. return 0;
  33. }
  34.  
  35.  
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
1234,1
123F,3
12C7,2
jklh,5