まずはやっぱり整数
\#include文とかusing文とかは省略するので、空気を読んでください!
C言語型の伝統的配列を使ったプログラムを'std::array'を使って、今どき風に書き換えていきます。
std::arrayの使い方は覚えていますか?
std::arrayの使い方
#include <iostream> #include <iomanip> #include <array> using std::cout; using std::cin; using std::endl; using std::array; int main() { //色々な型の配列を使ってみます。 //まずは整数 //arrayクラスは従来のC型配列のC++風アレンジです。 //array<型, 配列数> 配列名{初期化子列};で宣言できます。 //初期化子は省略できますが、初期化は忘れないでね。 array<int, 12> mDay{ 31,28,31,30,31,30,31,31,30,31,30,31 }; //従来のように、以下で初期化もできますが、↑のように書いた方が //今風でかっこいいです。 //array<int, 12> 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 <iostream> #include <iomanip> #include <array> using std::cout; using std::cin; using std::endl; using std::array; int main() { const int array_num = 5; array<double, array_num> 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; }
#include <iostream> #include <iomanip> #include <array> using std::cout; using std::cin; using std::endl; using std::array; int main() { //文字列を表すための文字配列(C言語型文字列) const int strLength = 11; array<char, strLength> 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; }
#include <iostream> #include <iomanip> #include <array> #include <string> using std::cout; using std::cin; using std::endl; using std::array; using std::string; int main() { const int strNum = 5; array<string, strNum> strArray{"sendai", "denshi", "senmon", "gakkou", "gameEngineer"}; for(auto &e:strArray) { cout << e << endl; } }