複合代入演算子
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];
すっきりしていいけど、あんまり見かけない書き方だから読みづらいかも?