C++ 中的 = 运算符是什么?
可能的重复:
>?= 运算符是什么意思?
我想知道 运算符我一直在 C++ 代码中看到。它无法在我的系统上编译,但我确信它是正确的。它的用法如下:
a
另外,我需要做什么才能编译它?
编辑帖子:
请参阅此源代码(它是实践获胜者的问题 Square Fields(问题 B)的解决方案 Google Code Jam 竞赛 - 请参阅 此处)。我在其他一些提交的内容中也看到了相同的字符模式。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<numeric>
#include<cmath> using namespace std;
#define ALL(t) t.begin(),t.end()
#define FOR(i,n) for (int i=0; i<(int)(n); i++)
#define FOREACH(i,t) for (typeof(t.begin()) i=t.begin(); i!=t.end(); i++) typedef vector<int> vi; typedef long long int64;
int t[15][1<<15]; int main() { int N;cin>>N; for(int c=1;c<=N;c++){
int n,k,x[30],y[30];
cin>>n>>k;
FOR(i,n)cin>>x[i]>>y[i];
FOR(take,1<<n)if(take){
int minx=1000000,maxx=-1,miny=1000000,maxy=-1;
FOR(i,n)if(take&1<<i)minx<?=x[i],maxx>?=x[i],miny<?=y[i],maxy>?=y[i];
t[1][take]=(maxx-minx)>?(maxy-miny); // cout<<take<<" "<<t[1][take]<<endl;
}
for(int kk=2;kk<=k;kk++)FOR(take,1<<n){
t[kk][take]=t[kk-1][take];
for(int take2=take;take2;take2=(take2-1)&take)
t[kk][take]<?=t[kk-1][take-take2]>?t[1][take2];
}
cout<<"Case #"<<c<<": "<<t[k][(1<<n)-1]<<endl; } return 0; }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
编辑:
它是旧版本 GCC 的扩展。请参阅:
>?= 运算符是什么意思?
但是扩展是
和
>?
。我仍然没有看到。
6.1 C++ 中的最小和最大运算符
早期帖子:
我向你保证,C++ 中没有这样的运算符。这肯定是一个打字错误。
程序员很可能想要输入
<=
或?:
或者您可能在这里输入错误,而实际上您打算输入 二合字母或三合字母(但您输入的内容既不是二合字母,也不是三字母)。
正如您自己所说
它无法在我的系统上编译
。会怎样呢?这是一个错字。EDIT:
Its an extension in older versions of GCC. See this :
What does the >?= operator mean?
But then the extensions are
<?
and>?
. I still don't see<?=
.6.1 Minimum and Maximum Operators in C++
EARLIER POST:
I assure you, there is no such operator in C++. Its certainly a mistyping.
The programmer most likely wanted to type either
<=
or?:
Or maybe you mistyped it here when in fact you intended to type a digraph or trigraph (but what you've typed is neither digraph nor trigraph).
As you yourself said
it doesn't compile on my system
. How would it? Its a typo.我本来想说这是一个三字母运算符,但事实并非如此。这可能是一个错字。
I was going to say it was a trigraph operator, but it isn't even that. It's probably a typo.
您是否可能与这个运算符混淆了:a?乙:丙。
否则,请发布您在其中看到的一些代码的链接,因为它肯定不是普通的 C++。
它可能是另一种语言,但谷歌搜索它实际上什么也没有返回,所以我不认为这就是答案。
Is it possible that you are getting mixed up with this operator: a ? b : c.
Otherwise, please post a link to some of the code that you've seen it in, because it sure ain't normal c++.
It could be another language, but googling it returns literally nothing, so I don't think that's the answer.