2008年5月3日土曜日

C++に出てくる?演算子

わけあって超嫌々ながら全く知らん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 コメント:

takano32 さんのコメント...

細かくてすみません。
cout << (a <= b ? a : b);
の方がきれいな気がします。

iteratorは配列のインデックスみたいなものです。(とか適当な説明すると混乱の元かもですね・・・