|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目地址:https://www.luogu.com.cn/problem/P5728
我的代码:- #include<iostream>
- #include<cmath>
- using namespace std;
- struct student{ //定义一个学生结构体
- int ch, ma, en;
- int al;
- };
- bool is_same(student a, student b) //判断是否是"旗鼓相当的对手"
- {
- if(abs(a.ch-b.ch) > 5) return false;
- if(abs(a.ma-b.ma) > 5) return false;
- if(abs(a.en-b.en) > 5) return false;
- if(abs(a.al-b.al) >10) return false;
- return true;
- }
- int main()
- {
- int n; cin>>n;
- student x[n];
- for(int i=0; i<n; ++i) //输入数据
- {
- int t1, t2, t3;
- cin>>t1>>t2>>t3;
- x[i].ch = t1; x[i].ma = t2; x[i].en = t3;
- x[i].al = t1+t2+t3;
- }
- int count = 0;
- for(int i=0; i<n; ++i) //判断有多少组"旗鼓相当的对手"
- for(int j=0; j<i; ++j)
- if(is_same(x[i], x[j])) count++;
- cout<<count;
- return 0;
- }
复制代码
在本地运行没有任何问题,但是提交上去就会显示编译错误,请问是怎么回事
报错信息很明显了,引用有歧义, is_same 这个符号在同一命名空间里出现重名了:标准上自 C++11 开始,标准库中已经定义了 std::is_same 这一符号。
所以需要尝试更改函数名,只从 std 命名空间引入使用的符号,或者指明调用的 is_same 的命名空间归属。
至于为什么本地能正常编译,可能和您在本地具体使用的编译器有关。
|
-
|