A vector only accepts one Type in its implementation, so you cannot have <int, pair>. You need to create a new class, or use a pair that also contains a pair; something like:
vector<pair<int, pair<int, int > > > v;
pair<int, int> p;
pair<int, pair< int, int> > q;
p.first = 1;
p.second = 2;
q.first = 1;
q.second = p;
v.push_back(q);
p.first = 3;
p.second = 4;
q.first = 2;
q.second = p;
v.push_back(q);
for (vector<pair<int, pair<int, int > > >::iterator it = v.begin(); it < v.end(); ++it)
{
q = *it;
int num = q.first;
p = q.second;
cout << num << " : " << p.first << " - " << p.second << endl;
}