===== いろんな型の配列を使った例をただ書き連ねるよ =====
=== 整数の配列(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へ進む(リンク)]]