template <class T> //提取数据函数的实现 T &Store<T>:getElem(){ //如试图提取未初始化的数据,则终止程序 if (!haveValue){ cout <"No item present!"<<endl; exit(1);/使程序完全退出,返回到操作系统。 return item; /返回item中存放的数据 template <class T> /存入数据函数的实现 void Store<T>:putElem(const T &x){ //将haveValue置为true,表示item中已存入数值 haveValue true; item x; //将x值存入item
template <class T> //提取数据函数的实现 T &Store<T>::getElem() { //如试图提取未初始化的数据,则终止程序 if (!haveValue) { cout << "No item present!" << endl; exit(1); //使程序完全退出,返回到操作系统。 } return item; // 返回item中存放的数据 } template <class T> //存入数据函数的实现 void Store<T>::putElem(const T &x) { // 将haveValue 置为true,表示item中已存入数值 haveValue = true; item = x; // 将x值存入item } 11
int main({ Store<int>s1,s2; s1.putElem(3); s2.putElem(-7); cout<sl.getElem0<””<s2.getElem0<endl; Student g 1000,23 } Store<Student>s3; s3.putElem(g); cout <"The student id is "<s3.getElem().id <endl; Store<double>d; cout <"Retrieving object D..." cout <d.getElem()<<endl /由于d未经初始化,在执行函数D.getElement(O过程中导致程序终 止 return 0; } 12
int main() { Store<int> s1, s2; s1.putElem(3); s2.putElem(-7); cout << s1.getElem() << " " << s2.getElem() << endl; Student g = { 1000, 23 }; Store<Student> s3; s3.putElem(g); cout << "The student id is " << s3.getElem().id << endl; Store<double> d; cout << "Retrieving object D... "; cout << d.getElem() << endl //由于d未经初始化,在执行函数D.getElement()过程中导致程序终 止 return 0; } 12
C++语言程序设计 清华大学郑莉 第二部分:群体数据 ·线性群体 一线性群体的概念 -直接访问群体-数组类 顺序访问群体-链表类 -栈类 一队列类
C++语言程序设计 清华大学 郑莉 13 第二部分:群体数据 ⚫ 线性群体 – 线性群体的概念 – 直接访问群体--数组类 – 顺序访问群体--链表类 – 栈类 – 队列类
C++语言程序设计 清华大学郑莉 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素。 14
C++语言程序设计 清华大学 郑莉 14 群体的概念 群体是指由多个数据元素组成的集 合体。群体可以分为两个大类:线性群 体和非线性群体。 线性群体中的元素按位置排列有序, 可以区分为第一个元素、第二个元素等。 非线性群体不用位置顺序来标识元 素
C++语言程序设计 清华大学郑莉 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 第一个元素 第二个元素第三个元素 最后一个元素大 15
C++语言程序设计 清华大学 郑莉 15 线性群体的概念 线性群体中的元素次序与其位置关 系是对应的。在线性群体中,又可按照 访问元素的不同方法分为直接访问、顺 序访问和索引访问。 在本章我们只介绍直接访问和顺序 访问。 … 第一个元素 第二个元素 第三个元素 最后一个元素