程序如下:
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main(){
pair<int,int> p(1,1);
cout<<p.first<<endl;
cout<<p.second<<endl;
p=make_pair(2,2);
cout<<p.first<<endl;
cout<<p.second<<endl;
string liu("liu");
pair<string,int> pstr(liu,1);
cout<<pstr.first<<endl;
cout<<pstr.second<<endl;
liu="wang";
p=make_pair(liu,2);
cout<<p.first<<endl;
cout<<p.second<<endl;
return 0;
}
程序不长 一看就能明白 但是为什么会出错呢? 编译通不过啊 纠结纠结 求解释~~
make_pair(int,int)可以,make_pair(string,int)出错 奇怪啊
答案:1 悬赏:70 手机版
解决时间 2021-03-21 01:42
- 提问者网友:人傍凄凉立暮秋
- 2021-03-20 17:29
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-20 18:55
好像很明显,下面你新定义的是pstr,而你使用时又用了上面定义的p,改后:
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main(){
pair<int,int> p(1,1);
cout<<p.first<<endl;
cout<<p.second<<endl;
p=make_pair(2,2);
cout<<p.first<<endl;
cout<<p.second<<endl;
string liu("liu");
pair<string,int> pstr(liu,1);
cout<<pstr.first<<endl;
cout<<pstr.second<<endl;
liu="wang";
pstr=make_pair(liu,2);
cout<<pstr.first<<endl;
cout<<pstr.second<<endl;
return 0;
}
我编译通过了
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main(){
pair<int,int> p(1,1);
cout<<p.first<<endl;
cout<<p.second<<endl;
p=make_pair(2,2);
cout<<p.first<<endl;
cout<<p.second<<endl;
string liu("liu");
pair<string,int> pstr(liu,1);
cout<<pstr.first<<endl;
cout<<pstr.second<<endl;
liu="wang";
pstr=make_pair(liu,2);
cout<<pstr.first<<endl;
cout<<pstr.second<<endl;
return 0;
}
我编译通过了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯