c++プログラミング練習032:このテンプレートは難しくない


北京大学プログラム設計とアルゴリズム(三)試験問題まとめ(2020春)
Description
プログラムを空にして、指定した結果を出力します.
#include 
#include 
#include 
using namespace std;
template <class T>  
class myclass {
//          
~myclass( ) {
		delete [] p;
	}
	void Show()
	{
		for( int i = 0;i < size;i ++ ) {
			cout << p[i] << ",";
		}
		cout << endl;
	}
};
int a[100];
int main() {
	char line[100];
	while( cin >> line ) {
		myclass<char> obj(line,strlen(line));;
		obj.Show();
		int n;
		cin >> n;
		for(int i = 0;i < n; ++i)
			cin >> a[i];
		myclass<int> obj2(a,n);
		obj2.Show();
	}
	return 0;
}

複数セットのデータを入力します.各グループの1行目はスペースを含まない文字列2行目は整数n 3行目はn整数
各セットのデータを出力し、入力文字列の各文字を順次出力し、各文字の後ろにカンマを付けてから、入力したn個の整数を順次出力し、各整数の後ろにカンマを付ける
サンプル入力Tom 3 3 4 5 Jack 4 1 2 3 4
サンプル出力T,o,m,3,4,5,J,a,c,k,1,2,3,4,
ソースGuo Wei
Analysis
この問題は簡単で,クラステンプレートの構造関数の書くことを考査することである.
class myclass {
private:
	const T *p; 
	int size;
public:
	myclass(T *_line,int num){
		p = _line;
		size = num;
	}
	~myclass( ) {
		delete [] p;
	}
	void Show()
	{
		for( int i = 0;i < size;i ++ ) {
			cout << p[i] << ",";
		}
		cout << endl;
	}
};

内部のパラメータから分かるように、2つのパラメータを初期化する必要があります.