【Cpp】for文のインクリメントは前置を使ったほうがいい

目次

for文では、前置を使ったほうがいい

結論がもう出ているのですが、C++のfor文では、処理効率的に見て、前置インクリメントのほうが後置インクリメントより優れています。

後置インクリメント

後置インクリメントでは、インクリメント対象を1度コピーしてから、加算処理をしています。

故に、コピーコストがかかるので、前置インクリメントと比べるとコストが高いということになります。

1
2
3
4
5
6
7
T T::operator++(int) {
T c = *this;
if (cnt < INT_MAX) {
this->cnt++;
}
return c;
}

前置インクリメント

前置インクリメントでは、インクリメント処理後に自分自身を返しています。

後置インクリメントと違い、コピーはしていません。

1
2
3
4
5
6
T& T::operator++() {
if (this->count < INT_MAX) {
this->count++;
}
return *this;
}

【Cpp】for文のインクリメントは前置を使ったほうがいい

https://blog.djima.net/2021/09/26/【Cpp】for文のインクリメントは前置を使ったほうがいい/

Author

Daiki Iijima

Posted on

2021-09-26

Updated on

2024-04-17

Licensed under