类模板的简单例子(作业)

本文介绍如何使用模板设计一个通用的队列类,实现元素的入队、出队、获取队列元素个数等操作。通过实例演示了如何在不同数据类型下灵活运用队列功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<pre name="code" class="cpp">书上252作业之:用模板设计一个通用的队列类,实现元素的入队,出队,获取队列元素个数


#include<iostream>
using namespace std;
template<class T1,class T2>
class shuju{
public:
	T1 data1;T2 data2;
	shuju<T1,T2> *next;
};
template<class T1,class T2>
class que{
public:
	void insert(T1,T2);
	void print();
	void goout(int n);
	que();
	int size(){return len;}
private:
	shuju<T1,T2> *first;
	int len;
};
template<class T1,class T2>
que<T1,T2>::que(){
	this->len=0;
}
template<class T1,class T2>
void que<T1,T2>::insert(T1 t1,T2 t2){
	shuju<T1,T2> *p=new shuju<T1,T2>;
	p->data1=t1;p->data2=t2;
	if(len==0){
		//cout<<"len==0"<<endl;
		p->next=NULL;
		first=p;
		len++;
	}
	else{
		p->next=first;
		first=p;
		len++;
	}
}
template<class T1,class T2>
void que<T1,T2>::print(){
	
	shuju<T1,T2> *temp=first;
	if(len==0)
		return;
	else{
		do{
			cout<<temp->data1<<"\t"<<temp->data2<<endl;
			temp=temp->next;
		}while(temp!=NULL);
		cout<<endl;
	}
}
template<class T1,class T2>
void que<T1,T2>::goout(int n){
	shuju<T1,T2> *p;
	for(int i=0;i<n;i++){
		p=first;
		cout<<p->data1<<"\t"<<p->data2<<endl;
		first=first->next;
		len--;
		delete p;
	}
}


 

#include"2.h"
#include<string>
void main(){
	que<int,double> que1;
	que1.insert(3,1.2);
	que1.insert(2,1.5);
	que1.insert(1,1.7);
	que1.print();
	que1.goout(2);
	cout<<que1.size()<<endl;;
	que<int,string> que2;
	que2.insert(3,"haha");
	que2.insert(2,"xixi");
	que2.insert(1,"ee");
	que2.print();
	cout<<que2.size()<<endl;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值