void CopyMapToVector(MYMAP &mymap, MYVECTOR &myvec) { myvec.clear(); // Delete what was in the vector (if anything) // As we mentioned above... reserve the space. Makes it much faster. myvec.reserve(mymap.size()); for (MYMAP::iterator it = mymap.begin(); it != mymap.end(); it++) { // If you want to copy the keys do this: myvec.push_back((*it).first); // Or if you want to copy the values do this: // myvec.push_back((*it).second); } }
Programming Tips - How do I efficiently copy an STL vector to a STL map?
Date: 2010may14
Language: C/C++
Keywords: Standard Template Library
Q. How do I efficiently copy an STL vector to a STL map?
A. There are two "tricks":
- Reserve the space in advance (for speed)
- Use .first or .second to access the map content
Of course, a map holds a key and a value; and a vector does not.
So you have to decide what you are copying.
The code: