- 科目オリエンテーション

  1. シラバス説明
  2. 授業内容紹介
  3. 評価方法
  4. 授業に臨む心得など

C++には関数テンプレートという優れた機能があります。(arrayとかvecotrとかもその応用)
その便利さを実感するためにまず、以下のようなプログラムを作成しなさい。
まずは復習!!

  1. char型のデータを引数で2つ受け取り、大きいほうを返す関数を作りなさい。
  2. int型のデータを引数で2つ受け取り、大きいほうを返す関数を作りなさい。
  3. float型のデータを引数で2つ受け取り、大きいほうを返す関数を作りなさい。
  4. double型のデータを引数で2つ受け取り、大きいほうを返す関数を作りなさい。
  5. これらをオーバーロードを使って作成しなさい。

お次は配列いじりの復習

  1. char型のデータの配列(arrayでもvectorでも、普通の配列でも構わん)を、引数にとり(どうやって引数に指定するかは工夫して!)、引数で渡した配列自体をソートしちゃう関数を作りなさい。
  2. char型のデータの配列(arrayでもvectorでも、普通の配列でも構わん)を、引数にとり(どうやって引数に指定するかは工夫して!)、引数で渡した配列自体をソートしちゃう関数を作りなさい。
  3. char型のデータの配列(arrayでもvectorでも、普通の配列でも構わん)を、引数にとり(どうやって引数に指定するかは工夫して!)、引数で渡した配列自体をソートしちゃう関数を作りなさい。
  4. char型のデータの配列(arrayでもvectorでも、普通の配列でも構わん)を、引数にとり(どうやって引数に指定するかは工夫して!)、引数で渡した配列自体をソートしちゃう関数を作りなさい。
  5. これらをオーバーロードを使って作成しなさい。

データはこれで作ってね!

#include <iostream>     // cout
#include <algorithm>
 
 
using namespace std;
 
int main()
{
        std::srand( time(NULL) );
		int arr[10];
		for(int i=0; i<10; i++)
		{
			arr[i] = i + 1;
			cout << arr[i] << " ";
		}
	cout <<endl;
        //cout << "RAND_MAX=" << RAND_MAX  << endl;
        int rnd1,rnd2;
		for(int i=0; i<30; i++)
		{
			rnd1  = rand()%10;
			rnd2  = rand()%10;
			std::swap(arr[rnd1], arr[rnd2]);
		}
		for(int i=0; i<10; i++)
		{
			cout << arr[i] << " ";
		}
		cout <<endl;
        return 0;
}

お次は新しいこと! 関数テンプレートについて調べなさい。

調べたら、うえで作った大きいほうを返す関数を、テンプレートを使って作ってみよう!
こんな感じで使える$MaxValue$関数を作成出来たらOK

"main.cpp"
int main()
{
	int x = 10, y = 30, z;
	double x1 = 15.1, y1 = 10.1, z1;
 
	z = MaxValue<int>(x, y);
	z1 = MaxValue<double>(x1, y1);
	cout << z << endl;
	cout << z1 << endl;
 
	return 0;
}

お次は、同じように、ソート関数に関して、テンプレートを適用してみよう!

最後の問題です。
テンプレートとオーバーロードの違いをまとめなさい!
後で提出してもらいます。

  • game-engineer/classes/2023/game-programing-2/first-term/4/04-21-1.txt
  • 最終更新: 3年前
  • by root