Use push_back for vector pair in C++
A vector is a dynamic array that can resize according to the elements inserted or deleted inside the container. In this tutorial, we will be learning how to use push_back for vector pairs in C++.
C++ program for push back in Vector pair
Vector pair is multiple numbers of pairs that can store two values mapped to each other. We can insert a pair in vector using vector “make_pair” function (pair functions are inside #include<algorithm>).
Syntax
- Making a vector pair
Vector<pair<datatype1, datatype2>> object;
- Push back in vector pair
object. push_back (make_pair (key1, key2));
Example:
To insert a vector pair first we declare the vector pair using the given syntax then we create a character array containing names of fruits and an integer array containing the price of each fruit respectively.
Then by using Push back in vector pair (syntax given above) we insert all the values in vector pair.
At last, we print the whole vector array using a loop. We can access the first element by v[i].first and the second element by v[i].second.Where v is the name of vector pair and i is the position in vector array.
#include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; int main() { //declaring vector of pairs vector< pair <string,int> > v; // initialising key values string arr[] = {"Apple","Mango","Watermelon","litchi" }; int arr1[] = {150, 120, 50, 110}; int n = sizeof(arr)/sizeof(arr[0]); //Inserting value in vector pair for (int i=0; i<n; i++) v.push_back( make_pair(arr[i],arr1[i]) ); // Printing the vector for (int i=0; i<n; i++) { cout << v[i].first << " " << v[i].second << endl; } return 0; }
Output:
Apple 150 Mango 120 Watermelon 50 litchi 110
Hello I have a problem when I use the above thing to make vector pairs. The thing is , the types inside the pair brackets are struct types, and visual studio says to that code line “no instance of overloaded function”, I don’t know how to resolve that. If you have a hint what can cause the problem that would be a huge help.
My code for that is something like:
vector<pair> pairs;
for (int i = 0; i < dfaVector.size() + dfaVector2.size(); ++i)
{
pairs.push_back(make_pair( dfaVector[i].a1, dfaVector2[i].a1 ));
}