首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于pair与容器有关问题

2012-03-19 
关于pair与容器问题读入一系列string和int类型数据,储蓄在pair类型中,再把pair放在vector容器中我这样写对

关于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);
}
}

热点排行