欢迎来到天天文库
浏览记录
ID:57005159
大小:126.00 KB
页数:15页
时间:2020-07-26
《标准模板库STL课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、类模板类模板的作用:除了可以定义模版函数还可以定义模版类,此时类成员函数所操作的数据的类型需要通过传入类型参数指定.类模板定义的通用形式:templateclassclass-name{….};例如:templateMyClass{....};在类模板以外定义其成员函数:templatereturn-typeclass-name::func-name(args….){….}定义模板类的对象:class-nameobject;实例:堆栈类
2、//此堆栈可以存储任何类型的对象templateclassStack{public:Stack(int=10);~Stack(){delete[]stackPtr;}boolpush(constT&t);boolpop(T&t);boolisEmpty()const{returntop==-1;}boolisFull()const{returntop==size-1;}private:intsize;inttop;T*stackPtr;};templateStack::Stack(ints){size=s>
3、0?s:10;top=-1;stackPtr=newT[size];}templateboolStack::push(constT&pushValue){if(!isFull()){stackPtr[++top]=pushValue;returntrue;}returnfalse;}templateboolStack::pop(T&popValue){if(!isEmpty()){popValue=stackPtr[top--];returntrue;}returnfalse;}intmain(){S
4、tackdoubleStack(5);doubledoubleValue=1.1;while(doubleStack.push(doubleValue)){cout<intStack(6);//…StackstrS
5、tack(6);//…return0;}脱离特定的数据类型的算法和数据结构,通用的逻辑.容器(container)迭代器(iterator用于索引容器)算法(algorithm作用于容器)标准模板库STL容器类模板向量(vector)双向列表(list)双端队列(deque)堆栈(LIFO)映射(map)集合(set)比特集合(bitset)vector向量(vector)动态数组,顺序结构,大小不固定,可以在程序运行时增加或减少.常用成员函数:vector();//构造函数//第一个参数指定元素个数,第二个是元素初值,TYPE为存储的数据类型
6、vector(int,TYPE);vector(input_iteratorstart,input_iteratorend);unsignedintsize()constboolempty()voidpush_back(constT&x)voidpopback()TYPE&operator[intindex]iteratorerase(iteratorloc)iteratorinsert(iteratorposition,constTYPE&x)迭代器:容器的内嵌类,用于遍历容器元素.参考代码vector.cpplistlist()//构造函数
7、list(unsignedint)//指定链表结点个数//第一个参数指定元素个数,第二个是元素初值,TYPE为存储的数据类型list(unsignedint,constTYPE&value)boolempty()constunsignedintsize()constTYPE&front()//返回头TYPE&back()//返回尾voidpush_front(constTYPE&x)//加入头voidpop_front()//删除头voidpush_back(constTYPE&x)//加入尾voidpop_back()//删除尾iterato
8、rinsert(iteratorposition,constT&x)//在position前插入元素xiteratorerase(iteratorpo
此文档下载收益归作者所有