fork(1) download
  1. #include <iostream>
  2. #include <map>
  3. #include <utility>
  4. #include <string>
  5.  
  6. int main()
  7. {
  8. std::map<std::string, std::map<int, std::string> > ssi;
  9.  
  10. ssi["123"].insert(std::map<int, std::string>::value_type(1, "abc"));
  11. ssi["123"].insert(std::map<int, std::string>::value_type(2, "def"));
  12. ssi["456"].insert(std::map<int, std::string>::value_type(1, "ghi"));
  13. ssi["456"].insert(std::map<int, std::string>::value_type(2, "jkl"));
  14.  
  15. // key1で検索
  16. std::map<std::string, std::map<int, std::string> >::const_iterator pos1;
  17. std::map<int, std::string>::const_iterator pos2;
  18.  
  19. for (pos1 = ssi.begin(); pos1 != ssi.end(); ++pos1)
  20. if (pos1->first == "456")
  21. for (pos2 = pos1->second.begin(); pos2 != pos1->second.end(); ++pos2)
  22. std::cout << "key2: first = " << pos2->first << ", second = " << pos2->second << std::endl;
  23.  
  24. // key2で検索
  25. for (pos1 = ssi.begin(); pos1 != ssi.end(); ++pos1)
  26. for (pos2 = pos1->second.begin(); pos2 != pos1->second.end(); ++pos2)
  27. if (pos2->first == 2)
  28. std::cout << "key1 = " << pos1->first << ", key2: second = " << pos2->second << std::endl;
  29. }
Success #stdin #stdout 0.01s 2868KB
stdin
Standard input is empty
stdout
key2: first = 1, second = ghi
key2: first = 2, second = jkl
key1 = 123, key2: second = def
key1 = 456, key2: second = jkl