测试代码示例

1.类测试:

#include<bits/stdc++.h>
using namespace std;

template<class T>
class Array{
private:
	T *arr;
	int size;
	int capacity;
public:
	Array();
	Array(int capacity);
	Array(const Array &ob);
	~Array();
	Array& operator=(Array& ob);
	void pushback(T elem);
	void popback(void);
};

template<class T>
Array<T>::Array(){
	capacity=5;
	size=0;
	arr=new T [capacity]; 
	cout<<"无参"<<endl;
    memset(arr,0,sizeof(T)*capacity); 
}
template<class T>
Array<T>::Array(int capacity){
	this->capacity=capacity;
	size=0;
	arr=new T [capacity];
	memset(arr,0,sizeof(T)*capacity);
}
template<class T>
Array<T>::Array(const Array &ob){
	capacity=ob.capacity;
	size=ob.size;
	arr=new T [capacity];
	memset(arr,0,capacity*sizeof(T));
	memcpy(arr,ob,sizeof(T)*size);
}
template<class T>
Array<T>::~Array(){
	if(arr!=NULL){
		delete [] arr;
		arr=NULL;
	}
}
template<class T>
Array<T> &Array<T>::operator=(Array<T> &ob){
	
	if(arr!=NULL){
		delete [] arr;
		arr=NULL;
	}
	size=ob.size;
	capacity=ob.capacity;
	arr=new T [capacity];
	memset(arr,0,sizeof(T)*capacity);
	memcpy(arr,ob,sizeof(T)*size);
	
	return *this;
}
template<class T>
void Array<T>::pushback(T elem){
	T *tmp; 
	if(size==capacity){
		capacity=2*capacity;
		tmp=new T [capacity];
		if(arr!=NULL){
			memcpy(tmp,arr,sizeof(T)*size);
			delete [] arr;
		}
		arr=tmp;
	}
	arr[size]=elem;
	size++;
    cout<<arr[0]<<endl;
}
template<class T>
void Array<T>::popback(void){
	if(size==0){
		cout<<"容器为空"<<endl;
	}
	else{
		size--;
		arr[size]=0;
	}
}

int main(void){
	Array<int> ob(10);
	ob.pushback(10);
	
	return 0;
}

2.map测试:

#include<bits/stdc++.h>
using namespace std;


class Base{
public:
	int classnum;
	void inputclassnum(void){
		cout<<"Input the class number: ";
		cin>>classnum;
		cout<<endl;
	}
	void getclassnum(void){
		cout<<"The class number is "<<classnum<<endl;
	}
};
class Person:public Base{
private:
	string name;
	int subnum;
	float *score;
public:
	Person(){
		subnum=0;
		score=new float [5];
		memset(score,0,5*sizeof(float));
	}
	Person(string name,int subnum){
		this->name=name;
		this->subnum=subnum;
		score=new float [subnum];
		memset(score,0,sizeof(float)*subnum);
		int i;
		for(i=0;i<subnum;i++){
			cout<<name<<"'s score"<<i+1<<" is:";
			cin>>score[i];
			cout<<endl;
		}
	}
	Person(const Person &ob){
		this->name=ob.name;
		this->subnum=ob.subnum;
		score=new float [ob.subnum];
		memset(score,0,sizeof(float)*subnum);
		if(ob.score!=NULL){
			memcpy(score,ob.score,sizeof(float)*ob.subnum); 
		}
	}
	~Person(){
		if(score!=NULL){
			delete [] score;
			score=NULL;
		}
		name="";
		subnum=0;
	}
	void Print(void){
		cout<<"Name: "<<name<<"; Subject number: "<<subnum<<endl;
		int i;
		for(i=0;i<subnum;i++){
			cout<<"The score"<<i+1<<" is "<<score[i]<<endl;
		}
	}
	friend class Printname;
	friend void Printf(map<int, Person> &m);
};
class Printname{
public:
	void operator()(string str){
		cout<<"The name is "<<str<<endl;
	}
};
void Printf(map<int, Person> &m){
		map<int,Person>::const_iterator it=m.begin();
		for(;it!=m.end();it++){
			cout<<(*it).first<<" "<<(*it).second.name<<endl;
			Printname()((*it).second.name);
		}
	}
	
int main(){
	map<int,Person> m;
	m.insert(make_pair(101,Person("Bob",3)));
	//m.insert(make_pair(102,Person("Tom",3)));
	//m.insert(make_pair(103,Person("Jack",3)));
	
	Printf(m);
	
	return 0;
}

3.template测试:

#include<bits/stdc++.h>
using namespace std;

template<class T>
class Person{
private:
	T *arr;
	int size;
	int capacity;
public:
	Person(){
		arr=new T [5];
		memset(arr,0,sizeof(T)*5);
		size=0;
		capacity=5;
	}
	Person(int capacity){
		this->capacity=capacity;
		size=capacity;
		arr=new T [capacity];
		memset(arr,0,sizeof(T)*capacity);
		int i;
		for(i=0;i<capacity;i++){
			cout<<"The element"<<i+1<<" is ";
			cin>>arr[i];
			cout<<endl;
		}
	}
	Person(const Person &ob){
		this->capacity=ob.capacity;
		this->size=ob.size;
		arr=new T [ob.capacity];
		memset(arr,0,sizeof(T)*ob.capacity);
		memcpy(arr,ob.arr,ob.size*sizeof(T));
	}
	~Person(){
		if(arr!=NULL){
			delete [] arr;
			arr=NULL; 
		}
		capacity=0;
		size=0;
	}
	void myInsert(void){
		if(size==capacity){
			T *arr1;
			arr1=new T [2*capacity];
			memset(arr1,0,sizeof(T)*2*capacity);
			memcpy(arr1,arr,sizeof(T)*2*capacity);
			delete [] arr;
			arr=arr1;
		}
		cout<<"Input the element:";
		cin<<arr[size];
		cout<<endl;
		size++;
	}
	void myPrint(void){
		int i;
		for(i=0;i<size;i++){
		cout<<"The data"<<i+1<<" is "<<arr[i]<<endl;	
		}
	}
	void getsize(void){
		cout<<"The capacity is "<<capacity<<endl;
		cout<<"The size is "<<size<<endl; 
	}
	Person &operator=(Person &ob){
		if(arr!=NULL){
			delete [] arr;
			arr=NULL;
		}
		this->capacity=ob.capacity;
		this->size=ob.size;
		memcpy(arr,ob.arr,ob.size*sizeof(T));
		return 0;
	}
	friend void Print(map<int,Person<int> > m);
};
void Print(map<int,Person<int> > m){
	int i;
	map<int,Person<int> >::iterator it=m.begin();
	
	for(;it!=m.end();it++){
		cout<<"The number is"<<(*it).first<<endl;
		for(i=0;i<(*it).second.capacity;i++){
			cout<<"The element"<<i+1<<" is "<<(*it).second.arr[i]<<endl;
		}
	}
}

int main(){
	map<int,Person<int> > m;
	
	m.insert(make_pair(101,Person<int>(3)));
	m.insert(make_pair(102,Person<int>(3)));
	Print(m);
	
	return 0;
}

4.适配器测试:

#include<bits/stdc++.h>
using namespace std;

class Print:public binary_function<int,int,void>{
public:
	void operator()(int value,int tmp) const
	{
		cout<<value+tmp<<endl;
	}
};

int main(){
	int tmp;
	vector<int> v1;
	
	cout<<"Input the tmp:";
	cin>>tmp;
	
	v1.push_back(10);
	v1.push_back(20);
	v1.push_back(30);
	v1.push_back(40);
	v1.push_back(50);
	
	for_each(v1.begin(),v1.end(),bind2nd(Print(),tmp));
	
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值