C++ map traversal
Quick example program with a C++ map, including how to iterate through the sample data. We should refer to the data in the map as keys and values (keys are unique indexes into their associated value). I have noticed that when I try to access a key that is not in the map, it returns an empty string.
#include <map> #include <string> #include <iostream> using namespace std; int main(int argc, char **argv) { map<string, string> m; m["Harold Spencer"] = "515 Northland Dr NW"; m["Jackson Porter"] = "7003 Parkway Avenue SE"; m["Janice Heinz"] = "441 East 400 North"; map<string, string>::iterator curr,end; for( curr = m.begin(), end = m.end(); curr != end; curr++ ) cout << curr->first << " : " << curr->second << endl; map<string, string>::reverse_iterator i,ix; for( i = x.rbegin(), x = x.rend(); i != ix; i++ ) cout << i->first << " : " << i->second << endl; return 0; }
using boost:
//sudo apt-get install libboost-dev; #include <iostream> #include <string> #include <boost/unordered_map.hpp> typedef boost::unordered_map<std::string, int> umap; int main(int argc, char **argv) { umap m; m["one"] = 1; m["two"] = 2; m["three"] = 3; for(umap::iterator curr = m.begin(), end = m.end(); curr != end; curr++ ) std::cout << curr->first << " : " << curr->second << std::endl; return 0; }
using c++11:
//g++ main.cpp "-std=c++0x" #include <iostream> #include <string> #include <unordered_map> typedef std::unordered_map<std::string, int> umap; int main(int argc, char **argv) { umap m = { { "one", 1 }, { "two", 2 }, { "three", 3 } }; for(umap::iterator curr = m.begin(), end = m.end(); curr != end; curr++ ) std::cout << curr->first << " : " << curr->second << std::endl; return 0; }
code snippets are licensed under Creative Commons CC-By-SA 3.0 (unless otherwise specified)