i++と++iの効率比較
1.iは組み込みタイプであり、効率に差がないため、コンパイラは自動的に最適化される
2.iが非内蔵タイプの場合、効率は異なり、主にその機能作用が異なり、++iはi値を自増してから返すが、i++は(i)を返す一時変数であり、同時にiを自増する.
リロードオペレータの実装ロジックは、次のコードと類似していると考えられます.
上のコードから分かるように、後置++は一時オブジェクトを保存する操作が1つ増えているため、効率は自然に低い.
したがって、次のようになります.
組み込みオブジェクトの場合
非組み込みオブジェクトの場合は、++i形式が望ましい
2.iが非内蔵タイプの場合、効率は異なり、主にその機能作用が異なり、++iはi値を自増してから返すが、i++は(i)を返す一時変数であり、同時にiを自増する.
リロードオペレータの実装ロジックは、次のコードと類似していると考えられます.
className className::
operator
++()
{
++m_iValue;
//
return
*
this
;
}
className className::
operator
++(
int
)
{
className clObj;
clObj.value=value;
m_iValue++;
return
clObj;
}
上のコードから分かるように、後置++は一時オブジェクトを保存する操作が1つ増えているため、効率は自然に低い.
したがって、次のようになります.
組み込みオブジェクトの場合
非組み込みオブジェクトの場合は、++i形式が望ましい