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にアップグレード変換されるため、心配ご無用です。