C++ / 範囲ベースforとauto型

#include <iostream>
using namespace std;

int main(){
    char vals[] = {'a','b','c','d'};
    int num = sizeof(vals)/sizeof(char);

    // 普通のforループ
    for(char i=0; i<num; i++){
        cout << vals[i] << ", ";
    }
    cout << endl;

    // 範囲ベースfor
    for(char val: vals){
        cout << val << ", ";
    }
    cout << endl;

    // 範囲ベースfor (元の型から変えてみる)
    for(int val: vals){
        cout << val << ", ";
    }
    cout << endl;

    // 範囲ベースfor (auto型を使ってみる)
    for(auto val: vals){
        cout << val << ", ";
    }
    cout << endl;


    system("pause");
    return 0;
}

f:id:ti-nspire:20181117170042p:plain

要するに以下のようなforループのことである。
.py

vals = [0,10,20,30]
for val in vals:
    print(val)

.lua

vals = {0,10,20,30}
for _, val in ipairs(vals) do
    print(val)
end