28

私は C++ のクラスを受講していますが、使用する数学演算子がわずかしかないことに気付きました。また、C++ の数学ライブラリには指数演算子が含まれていないことにも気付きました。

なぜ常にこれのために関数を書かなければならないのですか? C++ のメーカーがこの演算子を省略する理由はありますか?

4

4 に答える 4

58

このための関数を作成する必要はありません(もちろん、正気でない限り)。ヘッダーで定義された完全に優れたpow関数があります。<cmath>

余談ですが、パワー オペレーターとして使用しようとする^と、よくあることですが、厄介な事態に直面することになります。これは排他的論理和 (XOR) 演算子です (こちらを参照)。

于 2010-09-23T03:27:35.903 に答える
13

Bjarne Stroustrup の著書The design and evolution of C++によると。次の理由により、指数演算子を避けることにしました。

  • 演算子は表記上の利便性を提供しますが、新しい機能は提供しません。ワーキング グループのメンバーは、科学/工学計算のヘビー ユーザーを代表しており、演算子の構文が構文上のわずかな利便性を提供することを示しました。
  • C++ のすべてのユーザーは、この新機能を習得する必要があります
  • ユーザーは、固有の演算子では不可能な、システムのデフォルトを独自の特殊なべき乗関数に置き換えることの重要性を強調しています。
  • 提案は十分に動機づけられていません。特に、ある 30000 行の Fortran プログラムを見ても、演算子が C++ で広く使用されるとは結論付けられません。
  • この提案では、新しい演算子を追加し、別の優先レベルを追加する必要があるため、言語の複雑さが増します
于 2012-06-26T16:16:40.830 に答える
12

C が発明されたとき、ほとんどの C 操作は、単一のプロセッサ命令にマップされることを容易に意図していました。当時、累乗は機械命令ではなく、ライブラリ ルーチンでした。

于 2010-09-23T03:27:52.190 に答える