===== いろんな型の配列を使った例をただ書き連ねるよ ===== === 整数の配列(arrayクラスで) === まずはやっぱり整数\\ \#include文とかusing文とかは省略するので、空気を読んでください! \\ C言語型の伝統的配列を使ったプログラムを'''std::array'''を使って、今どき風に書き換えていきます。\\ std::arrayの使い方は覚えていますか?\\ [[http://www.yz-learning.com/yzwiki/doku.php?id=game-engineer:classes:2022:game-programing-1:second-term:12:12-22-2#stdarray|std::arrayの使い方]] #include #include #include using std::cout; using std::cin; using std::endl; using std::array; int main() { //色々な型の配列を使ってみます。 //まずは整数 //arrayクラスは従来のC型配列のC++風アレンジです。 //array<型, 配列数> 配列名{初期化子列};で宣言できます。 //初期化子は省略できますが、初期化は忘れないでね。 array mDay{ 31,28,31,30,31,30,31,31,30,31,30,31 }; //従来のように、以下で初期化もできますが、↑のように書いた方が //今風でかっこいいです。 //array mDay = { 31,28,31,30,31,30,31,31,30,31,30,31 }; int mon; cout << "整数を入力してください(1~12) >> "; cin >> mon; //配列名[添え字]のアクセスは、範囲外チェックをしません。 //範囲外アクセスの可能性がある場合は、エラーチェック付きのアクセスである //配列名.at(添え字)をつかいましょう。 //問題ない時&自分でチェックするときは []でアクセスしてもいいよ。 //自信ない時は.at()でアクセスした方がよいです。 try { cout << mon << "月は" << mDay.at(mon-1) << "日あります" << endl; } catch (std::out_of_range& oor) { std::cerr << "範囲外アクセスです。実行を終了します\n" << std::endl; } } === 浮動小数点数の配列 === #include #include #include using std::cout; using std::cin; using std::endl; using std::array; int main() { const int array_num = 5; array decimals{1.2, 4.2, 3.1, 2.2, 5}; cout << "全データを表示:"; for(auto &e: decimals) { cout << e << " "; } cout << endl; double sum = 0.0, average = 0.0; //配列名.size()で配列のサイズをゲットできます for(auto i = 0; i < decimals.size();i++) { sum = sum + decimals.at(i); } average = sum/decimals.size(); //double/intは何の型になるんだっけ? cout << "SUM: " << sum << endl; cout << "AVE: " << average << endl; } === 文字配列+'\0'を使ったC言語型文字列の使い方 === #include #include #include using std::cout; using std::cin; using std::endl; using std::array; int main() { //文字列を表すための文字配列(C言語型文字列) const int strLength = 11; array cArray{'g', 'a', 'm', 'e', 'E', 'n', 'g', 'i', 'n', 'e', '\0'}; //以下と同じです。 //char cArray[11] ={'g', 'a', 'm', 'e', 'E', // 'n', 'g', 'i', 'n', 'e', '\0'}; //配列の要素を1文字ずつ表示 for(auto &e: cArray) { cout << e; } cout << endl; //または、coutの機能でC文字列(char配列+¥0)を表示! //文字配列のアドレスを渡すと、文字列として表示してくれる(coutが偉い) //配列名.data()でcArray[] = "gameEnine";のcArrayを渡したのと同じ cout << cArray.data() << endl; } === C++文字列(string型)の配列 === #include #include #include #include using std::cout; using std::cin; using std::endl; using std::array; using std::string; int main() { const int strNum = 5; array strArray{"sendai", "denshi", "senmon", "gakkou", "gameEngineer"}; for(auto &e:strArray) { cout << e << endl; } } * [[game-engineer:classes:2022:game-programing-1:second-term:01:01-30-xx|配列補足1へ戻る(リンク)]] * [[game-engineer:classes:2022:game-programing-1:second-term:01:01-30-xx02|配列補足3へ進む(リンク)]]