什么是C ++中的<! - ?=运算符 - >

时间:2011-05-15 03:44:03

标签: c++ operators

  

可能重复:
  What does the >?= operator mean?

我想知道我在C ++代码中看到的<?=运算符是什么。它不能在我的系统上编译,但我确定它是正确的。它的使用方式如下:a <?= something;

另外,我需要做些什么才能编译它?

编辑帖子:

请参阅此源代码(这是练习Google Code Jam比赛获胜者问题Square Fields(问题B)的解决方案 - 请参阅here)。我在其他一些提交文件中也看到了相同的字符模式。

#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; }

3 个答案:

答案 0 :(得分:4)

编辑:

它是旧版GCC的扩展。见:

What does the >?= operator mean?

但扩展名为<?>?。我仍然没有看到<?=

6.1 Minimum and Maximum Operators in C++


早期发布:

我向你保证,C ++中没有这样的运算符。它当然是一种错误。

程序员很可能想要输入<=?:

或许你在这里输入错误,实际上你打算键入digraph or trigraph(但你输入的内容既不是 digraph 也不是 trigraph )。

正如你自己所说it doesn't compile on my system。怎么会这样?这是一个错字。

答案 1 :(得分:1)

我打算说它是一个三角形算子,但它甚至不是。这可能是一个错字。

答案 2 :(得分:0)

您是否可能与此运营商混淆:a? b:c。 否则,请发布您在其中看到的一些代码的链接,因为它肯定不是正常的c ++。 它可能是另一种语言,但谷歌搜索字面意思 nothing ,所以我不认为这就是答案。