# How to Convert Map to a Vector of Pairs in C++?

Last Updated : 25 Jan, 2024

In C++, map containers allow us to store the data in key-value pairs. There might be some cases where you want to convert an entire map into a vector of pairs. In this article, we will learn how to convert a map into a vector of pairs.

Example

`Input: map<int,string>mp ={ {1,"one"}, {2,"two"}, {3,"three"}}Output: vector<pair<int,string>>vec= { (1,"one"), (2,"two"), (3,"three")}Input: map<int,char>mp ={ {1,'a}, {2,'b'}, {3,'c'}}Output: vector<pair<int,char>>vec= {(1, 'a'), (2, 'b'), (3, 'c')}`

## Convert Map to a Vector of Pairs

To convert a map to a vector of pairs, we can use the std::copy method provided by the C++ Standard Template Library (STL) to copy the elements from the map to a vector of pairs. We can use the back_inserter() function to make sure that the elements are inserted at the end of the vector.

## C++

 `// C++ Program to illustrate how to Convert Map to Vector of ` `// Pairs Using std::copy Method ` `#include ` `using` `namespace` `std; ` ` `  `int` `main() ` `{ ` `    ``map<``int``, ``char``> mp ` `        ``= { { 1, ``'a'` `}, { 2, ``'b'` `}, { 3, ``'c'` `} }; ` ` `  `    ``// create a vector of pairs to store the elements of map ` `    ``vector > vec; ` ` `  `    ``// use the std::copy method to copy the elements from ` `    ``// map to vector ` `    ``copy(mp.begin(), mp.end(), back_inserter(vec)); ` ` `  `    ``// print the vector of pairs ` `    ``cout << ``"Vector Elements:"` `<< endl; ` `    ``for` `(``auto``& pair : vec) { ` `        ``cout << ``"("` `<< pair.first << ``", "` `<< pair.second ` `             ``<< ``" "` `             ``<< ``") "` `<< endl; ` `    ``} ` ` `  `    ``return` `0; ` `}`

Output

```Vector Elements:
(1, a )
(2, b )
(3, c )
```

Time complexity: O(N), to traverse the whole map and copy values to vector using the copy method.
Auxilary Space: O(1), as no extra space is used for conversion.

Previous
Next