关于pair与容器有关问题

关于pair与容器问题
读入一系列string和int类型数据,储蓄在pair类型中,再把pair放在vector容器中
我这样写对不??
头文件pair_lei
C/C++ code
#ifndef PAIR
#define PAIR
//读入一系列string和int数据,把每一组储蓄在pair对象中

#include <string>
#include <utility>
using namespace std;

pair<string,int> pair_lei(string stringname,int intnum){
    pair<string,int> a(stringname,intnum);
    return a;

}


#endif 



主函数
C/C++ code
//把这些pair对象存蓄在vector容器中
#include "stdafx.h"
#include <iostream>
#include <vector>
#include "pair_lei.h"
int main(){
    string stringname;
    int intnum;
    vector< pair<string,int> > b;
    while(cin>>stringname>>intnum){
  
        b.push_back(pair_lei(stringname,intnum));

    }
    
    return 0;}



我写得对不,大家有好的写法发上来我看看。

------解决方案--------------------
template<class T, class U>
pair<T, U> make_pair(const T& x, const U& y);
用这进行压入vector容器
也就是b.push_back(make_pair(stringname,intnum));
------解决方案--------------------
C/C++ code


//°ÑÕâЩpair¶ÔÏó´æÐîÔÚvectorÈÝÆ÷ÖÐ

#include <iostream>
#include <vector>
#include <string>
#include <utility>
using namespace std;

pair<string,int> pair_lei(string stringname,int intnum)
{
    pair<string,int> a(stringname,intnum);
    return a;

}

int main()
{
    string stringname;
    int intnum;
    int num=0;
    vector< pair<string,int> > b;
    while(num<3)
    {
        cin>>stringname>>intnum;
        b.push_back(pair_lei(stringname,intnum));
        num++;
    }
    pair<string,int> p;
    for (vector< pair<string,int> >::iterator it = b.begin();it!=b.end();it++)
    {
        p = *it;
        cout<<p.first<<p.second <<endl;
    }
    system("pause");
    return 0;
}

------解决方案--------------------
可以写得简单点
[code=C/C++][/code]
#include<iostream>
#include<vector>
#include<string>
#include<utility>

using namespace std;

void mian(){
vector< pair<string,int> > b;
string stringname;
int intnum;
while (cin>>stringname>>intnum){
b.push_back(make_pair(stringname,intnum);
}
}