次のどれが高速ですか?演算子のオーバーロードまたは関数の作成(C++)
方法1:
int foo (int A, int B) {
// write equations
}
方法2:
int operator| (int A, int B) {
// write equations
}
次のどれが高速ですか?演算子のオーバーロードまたは関数の作成(C++)
方法1:
int foo (int A, int B) {
// write equations
}
方法2:
int operator| (int A, int B) {
// write equations
}
これらは両方とも機能であり(したがって速度の差はありません)、その1つ(オペレータ)が呼び出されるためにはもっと「派手な」構文を使用できることがあります。
2つのうちどれを使用するかは速度ではなく、オペレータを使用するタイプに自然な意味があるかどうかを判断する際の質問です。あなたがオペレータが通常何をしているかを知っていることを考慮して、それを読者には全く驚くべきことをするために使用するとき、オペレータに過負荷をかけないでください。
(ここでは、intの代わりに独自の型を意味すると仮定しています。わからない場合は、演算子をintにオーバーロードできません。オーバーロードされた演算子のパラメータの1つは、 )
は違い、彼らは私が今まで聞いたすべてのコンパイラで内部的にまったく同じように実装されています。確かめてください:それをプロファイルしてください!
うん、@DavidSeilerのように、それをプロファイリングするか、Linuxマシンを持っている場合はコンパイルして、両方のケースで実行時間を計算するために時間を使う(かなりの反復回数で)。 – crsuarezf
実行速度に関しては違いはありません。
選択肢は、スタイルと可読性のいずれかに過ぎません。将来のメンテナンスに役立つ最も理解できるコードを作成するものを選択する必要があります。
なぜ、他のものより速くすべきですか? –