Browse - Programming Tips - How do I iterate through an MFC CMap ?

Date: 2008jan21
Framework: MFC
Language: C/C++

Q.  How do I iterate through an MFC CMap<> ?

A.

// Assuming you have a string -> pointer map like this typedef CMap< CString, LPCSTR, Node*, Node*> CMapStringToNode; // Loop through all elements this way: void interate_thru_cmap(CMapStringToNode &map) { CString strJunk; Node *node; pos = map.GetStartPosition(); for (;;) { if (pos == NULL) break; map.GetNextAssoc(pos, strJunk, node); // Do something with node ... } }
STL's map<> is easier to work with.