文档详情

5、泛型程序设计与C++标准模板库教程.ppt

发布:2017-04-30约3.78千字共53页下载文档
文本预览下载声明
;主要内容;泛型程序设计;STL组件之间的关系;示例;示例;容器;容器分类;所有容器共有函数;顺序容器和关联容器共有函数;适配器;迭代器;算法;顺序容器;顺序容器——向量;向量的函数-1;向量的函数-2;向量的函数-3;向量的函数-3;向量操作;//1.cpp #include iostream #include iomanip #include vector //包含向量容器头文件 using namespace std ; int main() { vectorint A(10); int n; int primecount = 0, i, j; coutEnter a value=2 as upper limit: ; cin n; A[primecount++] = 2; ; for(i = 3; i n; i++) { if (primecount == A.size()) A.resize(primecount + 10); if (i % 2 == 0) continue; j = 3; while (j = i/2 i % j != 0) j += 2; if (j i/2) A[primecount++] = i; } for (i = 0; iprimecount; i++)//输出质数 { coutsetw(5)A[i]; if ((i+1) % 10 == 0) //每输出10个数换行一次 cout endl; } coutendl; };顺序容器——双端队列;*;*;顺序容器——列表;//3.cpp #include iostream #include list using namespace std ; int main() { listint Link; //构造一个列表用于存放整数链表 int i, key, item; for(i=0;i 10;i++)// 输入10个整数依次向表头插入 { cinitem; Link.push_front(item); } coutList: ; // 输出链表; listint::iterator p=Link.begin(); while(p!=Link.end())//输出各节点数据,直到链表尾 { cout *p ; p++; //使P指向下一个节点 } cout endl; cout 请输入一个需要删除的整数: ; cin key; Link.remove(key); cout List: ; // 输出链表 p=Link.begin(); // 使P重新指向表头 while(p!=Link.end()) { cout *p ; p++; // 使P指向下一个节点 } cout endl; };容器适配器;#include iostream #include queue //声明Queue容器适配器头文件 using namespace std; template class T void popElements( T s ); int main() { queue int intDequeQueue; // 默认情况下以Queue容器作为基础数据结构 for ( int i = 0; i 10; ++i ) { intDequeQueue.push( i ); //用push函数将整数添加到deque容器Queue顶部 } cout Popping from intDequeQueue: ; popElements( intDequeQueue ); //将Queue中的元素弹出并输出 cout endl; };template class T void popElements( T s ) //定义模板函数 { while ( !s.empty() ) { cout s.front() ; //用函数front读取Queue顶上的元素并输出 s.pop(); //用函数pop删除顶上的元素 } };什么是迭代器;迭代器的类型;迭代器适配器;#include iostream #include vector #include algorithm using namespace std; int main() { int A[] = {1, 2, 3
显示全部
相似文档