У вас есть указатель на вектор, который указывает в никуда. Либо выделите память для вашего вектора (хотя и не рекомендуется), либо не используйте указатель.
vector< pair<int, int> > * v = new vector<pair<int, int>>[2];
V[idx].push_back(make_pair(idx2, idx3));
Не забудьте удалить свой вектор, когда закончите.
delete [] v;
Лучший способ - использовать умные указатели, вот пример с shared_ptr
:
#include <iostream>
#include <vector>
#include <memory>
using namespace std;
using vecPair = vector<pair<int, int>>;
// deallocator for an array of vectors
void deleter(vecPair* x)
{
delete[] x;
}
int main() {
shared_ptr<vecPair> v;
v.reset(new vecPair[2], deleter);
int a = 1;
int b = 2;
int c = 3;
int d = 4;
v.get()[0].push_back(make_pair(a, b));
v.get()[1].push_back(make_pair(c, d));
}