わけあって超嫌々ながら全く知らんC++のコードを解読する必要があるのだが、ワケワカラン部分があってしばらく詰まっていた。それは"?"という演算子。手元の入門書に載ってない。google先生で検索しようにも、C++、?じゃアホほどいろんなとこがヒットして、はーやれやれって感じでちょっとだるい気分になってたんだが、やっと解決した。
この"?"は条件演算子らしい。ちがうこと調べててC言語の解説ページで偶然見つけた。ここのサイト分かりやすい。C++でもサポートしているぽい。C++唯一の三項演算子だとさ。
条件式 ? 式1:式2
という体裁で使う。
条件式が真を返せば式1を、偽なら式2を返す。
試しに
#include < iostream >
using namespace std;
int main() {
int a,b;
cin < < a;
cin < < b;
a < =b ? cout < < a : cout < < b;
return 0;
}
みたいなのを実行すると、キーボードから入力されたa,bのうち大きい方を出力することになる。
・・・でもこれif文でええがな。ということで入門書には載ってなかったのか。おんなじ機能のもの2つ提供されてもなぁーややこしいとおもうんだけど。やっぱりC言語系統は苦手だ。あとiteratorってのがワカラン。調べんと・・・
1 コメント:
細かくてすみません。
cout << (a <= b ? a : b);
の方がきれいな気がします。
iteratorは配列のインデックスみたいなものです。(とか適当な説明すると混乱の元かもですね・・・
コメントを投稿