整数の配列(arrayクラスで)

まずはやっぱり整数
\#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;
}

文字配列+'\0'を使ったC言語型文字列の使い方

"C言語型文字列を使うサンプル"
#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;
}

C++文字列(string型)の配列

"string型の配列のサンプル"
#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;		
	}
}
  • game-engineer/classes/2022/game-programing-1/second-term/01/01-30-xx03.txt
  • 最終更新: 3年前
  • by root