複合代入演算子

C/C++で、算術演算と代入を一度に行う複合代入演算子
この辺のはおなじみ。

+= -= *= /= %= <<= >>=

こんな感じでよく使いますね。

int sum(vector <int> array)
{
  int sum = 0;
  for (int i=0;i<array.size();i++) {
    sum += array[i];
  }

  return sum;
}


実は三項演算子でも使えます。

int max(vector <int> array) {  
  int max = 0;
  for (int i=0;i<array.size();i++ ){
    max = max > a[i] ? max : array[i];
  }
  return max;
}

このソースの、三項演算子の条件で大小比較をして大きいほうをmaxに代入している部分。

    max = max > a[i] ? max : array[i];

以下のように書けます。

    max >?= array[i];

すっきりしていいけど、あんまり見かけない書き方だから読みづらいかも?