⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 模板.txt

📁 钱能主编 C++程序设计教程(第一版) 该书习题的答案代码
💻 TXT
字号:
//**************************
//**      ch20_1.cpp      **
//**************************
#include <iostream.h>

template <class T>
T max(T a, T b)
{
	return a>b?a:b;
}

void main()
{
	cout<<"Max(3,5) is "
		<<max(3,5)<<endl;
	cout<<"Max('3','5') is "
		<<max('3','5')<<endl;
	cout<<"Max(3.78,5.96) is "
		<<max(3.78,5.96)<<endl;
}

//**************************
//**      ch20_2.cpp      **
//**************************
#include <iostream.h>
#include <string.h>

template <class T>
T max(T a,T b)
{
	return a>b?a:b;
}

char* max(char* a,char* b)
{
	return (strcmp(a,b)>0?a:b);
}
void main()
{
	cout<<"Max(\"Hello\",\"Gold\") is "
		<<max("Hello","Gold")<<endl;
}

//------listtmp.prj------//
//-----------------------//
//**********************
//**      list.h      **
//**********************
#include <iostream.h>

template<class T> class List
{
	public:
		List();
		void Add(T&);
		void Remove(T&);
		T* Find(T&);
		void PrintList();
		~List();
	protected:
		struct Node
		{
			Node* pNext;
			T* pT;
		};
		Node *pFirst;
};

template<class T> List<T>::List()
{
	pFirst=0;
}

template<class T>
void List<T>::Add(T& t)
{
	Node* temp=new Node;
	temp->pT=&t;
	temp->pNext=pFirst;
	pFirst=temp;
}

template<class T>
void List<T>::Remove(T& t)
{
	Node* q=0;
	if(*(pFirst->pT)==t)
	{
		q=pFirst;
		pFirst=pFirst->pNext;
	}
	else
	{
		for(Node* p=pFirst;p->pNext;p=p->pNext)
			if(*(p->pNext->pT)==t)
			{
				q=p->pNext;
				p->pNext=q->pNext;
				break;
			}
	}

	if(q)
	{
		delete q->pT;
		delete q;
	}
}

template<class T>
T* List<T>::Find(T& t)
{
	for(Node* p=pFirst;p;p=p->pNext)
	{
		if(*(p->pT)==t)
			return p->pT;
	}
	return 0;
}

template<class T>
void List<T>::PrintList()
{
	for(Node* p=pFirst;p;p=p->pNext)
	{
		cout<<*(p->pT)<<" ";
	}
	cout<<endl;
}

template<class T>
List<T>::~List()
{
	Node* p;
	while(p=pFirst)
	{
		pFirst=pFirst->pNext;
		delete p->pT;
		delete p;
	}
}
//************************
//**      main.cpp      **
//************************
#include "listtmp.h"

void main()
{
	List<float> floatList;
	for(int i=1;i<7;i++)
	{
		floatList.Add(* new float(i+0.6));
	}
	floatList.PrintList();
	float b=3.6;
	float* pa=floatList.Find(b);
	if(pa)
		floatList.Remove(*pa);
	floatList.PrintList();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -