# Convert a map to a vector in C++

This is a tutorial on how to convert a map to a vector in C++. Maps are used to store key-value pairs in an ordered way. And so, to store these we need a vector of paired values.

Suppose we have a map of integer keys and integer values.

```map<int,int> mp;  //mp[key] =value
mp = 10;
mp = 2;
mp = 6;

```

To store these we need a vector of integer paired with an integer.

```vector<pair<int,int>> vec;
//this vec will store the map as:
[[5,10] , [8,2] , [9,6]]```

Now let us assume a map of string keys and integer values:

```map<string,int> mp1;
mp1["cake"] = 500;
mp1["jam"] = 100;
mp1["pizza"] =400;```

To store these we need a vector of string paired with an integer.

```vector<pair<string,int>> vec1;
//this vec1 will store the map as:
[["cake",500] , ["jam",100] , ["pizza",400]]```

So let’s see how we can do this.

## Map to vector

The idea to convert a map to vector is to iterate over the map and store the key-value pairs into vector one by one. This can be understood by the following examples:

Example1: Integer key and integer value

```#include <bits/stdc++.h>
using namespace std;

int main() {
map<int,int> mp;
mp = 10;
mp = 16;
mp = 7;
mp = 6;

vector<pair<int,int>> vec;

for(auto i : mp)   //inserting map values into vector
{
vec.push_back(make_pair(i.first,i.second));
}

for(auto j : vec)
cout<<j.first<<" : "<<j.second<<endl;

return 0;
}
```

Output:

```2 : 16
5 : 10
9 : 7
10 : 6```

Exmaple2: String key and integer values

```#include <bits/stdc++.h>
using namespace std;

int main() {
map<string,int> mp1;
mp1["cake"] = 500;
mp1["jam"] = 100;
mp1["pizza"] = 400;

vector<pair<string,int>> vec1;

for(auto i : mp1)   //inserting map values into vector
{
vec1.push_back(make_pair(i.first,i.second));
}

for(auto j : vec1)
cout<<j.first<<" : "<<j.second<<endl;

return 0;
}
```

Output:

```cake : 500
jam : 100
pizza : 400```

That’s it on how to convert a map into a vector. I hope you understood it.