' P '

whatever I will forget

C++ レンジベースのLoop

C++にこんな機能があったとは、、全く知りませんでした。

リスト内の変数分forループの場合

#include <iostream>

using namespace std;

int main() {
    int scores[] {10,20,30};
    
    for (auto score: scores) 
        cout << score << endl;
    return 0;

}

for文の中では、配列の値を入れる変数を定義するだけ。
for (auto var: list) 超簡単。。
しかも、いつもなら
for (int var, list) とやるところですが、C++11以上ではautoと言うのが使える。
これはlist変数の型に合わせてくれる楽チンなもので、型の指定をどうしようか迷った時に使えますね〜

vectorの場合

int main() {

    double total{};
    double avg{};
    
    vector <double> vc {10.1, 20.3, 31.2};
    for (auto v: vc)
        total += v;
    avg = total / vc.size();
    cout << avg << endl;
    
    return 0;

}

基本一緒です。 ただ前エントリーの際に、vectorの.size()の戻り値はunsigned intと記述しましたが、
今回は、totalはdouble型なので、doubleにアップグレード変換されるため、心配ご無用です。