Dave's Brain

Browse - programming tips - copy stl map to vector

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:

	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);
   		}
   	}
What this info useful to you? You can donate to say thanks

Add a comment

Sign in to add a comment
Copyright © 2008-2012, dave - Code samples on Dave's Brain is licensed under the Creative Commons Attribution 2.5 License. However other material, including English text has all rights reserved.
Advertisements: