template <class T> ∥提取数据函数的实现 T Store<T>:GetElem(void) {∥如果试图提取未初始化的数据,则终止程序 if (haveValue =0) cout <<"No item present!"<<endl; exit(1); } return item;W返▣item中存放的数据 了 template<class T>∥存入数据函数的实现 void Store<T>::PutElem(T x) haveValue++; II将haveValue置为TRUE,表示 item中已存入数值 item x; ∥将x值存入item 11
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) 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(0<<endl;I/输出对象D的数据成员 I∥由于D未经初始化,在执行函数D.GetElement()时出错 } 12
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++语言程序设计 清华大学郑莉 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素。 14
C++语言程序设计 清华大学 郑莉 14 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素
C++语言程序设计 清华大学郑莉 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 第一个元素 第二个元素 第三个元素 最后个元米 15
C++语言程序设计 清华大学 郑莉 15 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 . 第一个元素 第二个元素 第三个元素 最后一个元素