C类模板与STL编程模版课件.ppt
文本预览下载声明
第10章 类模板与STL编程 第10章 类模板 1. 类模板的定义 1. 类模板的定义 1. 类模板的定义 1. 类模板的定义 2. 类模板的实例化 2. 类模板的实例化 2. 默认模板参数 10.2 类模板应用 1. 栈类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 2.链表类模板 10.4 本章小结 C++语言程序设计教程 第10章 类模板 10.3.3 顺序容器 表10-4 deque容器中较为重要的成员函数 利用[]运算符取出容器中的元素 operator[] 与容器x(deque容器)互换元素 swap(x) 返回第n个元素的引用 at(n) 返回当前容器可以存储的最大元素个数 capacity 若容器为空(无元素)则返回true,否则返回false empty 返回当前容器中的元素个数 size 返回容器可存储元素的最大个数 max_size 返回容器末端的倒转迭代器 rend 返回容器前端的倒转迭代器 rbegin 返回容器末端的迭代器 end 返回容器前端的迭代器 begin 返回容器末端元素的引用 back 返回容器前端元素的引用 front 清除容器内的元素 clear 删除容器中间的元素 erase 在容器中间插入元素 insert 在容器后端删除元素 pop_back 在容器后端增加元素 push_back 在容器前端删除元素 pop_front 在容器前端增加元素 push_front 功 能 说 明 函 数 名 C++语言程序设计教程 第10章 类模板 10.3.3 顺序容器 为了更好的使用3种标准顺序容器,STL还设计了3种容器适配器(container adapter):队列(queue)、优先队列(priority queue)和栈(stack)。容器适配器可以将顺序容器转换为另一种容器,也就是以顺序容器为基础,将其转换为新的容器。转换后的新容器将具有新的特殊操作要求。 表10-4 容器适配器 stack 需要一个FILO结构时使用栈。 在一端插入元素,在同一端删除元素,具有先进后出(first in, last out, FILO)的特性。 stack (栈) queue 需要一个带优先级的FIFO结构时使用优先队列。 每个元素都有一个优先级,元素按优先级的顺序从队列中删除,如果优先级相同,则仍然遵循先进先出规则。插入和删除都比一般的简单队列慢,因为必须对元素重新调整顺序,以支持按优先级排序。 priority queue (优先队列) queue 需要一个FIFO结构时使用队列。 在一端插入元素,在另一端取出元素,具有先进先出(first in, first out, FIFO)的特性,插入和删除都较快。 queue (队列) 头文件 何时使用 特性 容器类名 C++语言程序设计教程 第10章 类模板 10.3.3 顺序容器 /************************************* * 程序名:p10_4.cpp * * 功 能:队列容器示例程序 * *************************************/ #includeiostream #includequeue using namespace std; templateclass T void print(queueT q) { if(q.empty()) //判断队列是否空 coutQueue is empty!endl; else { int j=q.size(); for(int i=0; ij;i++) { coutq.front() ; q.pop(); //出队列 } coutendl; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 C++语言程序设计教程 第10章 类模板 int main() { queueint q; //创建队列 q.push(1); //进队列 q.push(2); q.push(3); q.push(4); //取队头元素 coutThe first element is :
显示全部