template< class T>∥提取数据函数的实现 T Store<T>:: GetElem(void) ∥如果试图提取未初始化的数据,则终止程序 if (have Value == 0) I cout <<"No item present! "< end; exit(1); return item;∥返回item中存放的数据 template< class T>∥存入数据函数的实现 void Store<T> PutElem(T x) have value++;∥将 have value置为TRUE,表示 tem中已存入数值 item=x;∥将x值存入item
template <class T> // 提取数据函数的实现 T Store<T>::GetElem(void) { // 如果试图提取未初始化的数据,则终止程序 if (haveValue == 0) { cout << "No item present!" << endl; exit(1); } return item; // 返回item中存放的数据 } template <class T> // 存入数据函数的实现 void Store<T>::PutElem(T x) { haveValue++; // 将haveValue 置为 TRUE,表示 item中已存入数值 item = x; // 将x值存入item } 11
void main(void) i Student g=(1000, 233 Store<int> s1. s2. Store<student> s3 Store<double> D: S1 PutElem (3) S2. PutElem(-7) cout≤<S1. Getelem(<<""≤≤S2. GetEle(<<endl; S3. PutElem(g) cout <<The student id is"<< S3. GetElemo id < endl; cout < Retrieving objectD; cout< D, GetElem0)<<endl;∥输出对象D的数据成员 ∥由于D未经初始化,在执行函数 D GetElement(时出错
void main(void) { Student g= {1000, 23}; Store<int> S1, S2; Store<Student> S3; Store<double> D; S1.PutElem(3); S2.PutElem(-7); cout << S1.GetElem() << " " << S2.GetElem() << endl; S3.PutElem(g); cout << "The student id is " << S3.GetElem().id << endl; cout << "Retrieving object D " ; cout << D.GetElem() << endl; //输出对象D的数据成员 // 由于D未经初始化,在执行函数D.GetElement()时出错 } 12
C++语言程序设计 清华大学郑莉 第二部分一群体数据 线性群体 线性群体的概念 直接访问群体-数组类 顺序访问群体--链表类 栈类 队列类
C++语言程序设计 清华大学 郑莉 13 第二部分—群体数据 ⚫ 线性群体 – 线性群体的概念 – 直接访问群体--数组类 – 顺序访问群体--链表类 – 栈类 – 队列类
C++语言程序设计 清华大学郑莉 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素
C++语言程序设计 清华大学 郑莉 14 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素
C++语言程序设计 清华大学郑莉 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 第一个元素第二个元素第三个元素 最后一个元素
C++语言程序设计 清华大学 郑莉 15 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 … 第一个元素 第二个元素 第三个元素 最后一个元素