文档详情

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

发布:2025-02-20约3.78千字共53页下载文档
文本预览下载声明

;主要内容;泛型程序设计;STL组件之间的关系;例如;例如;容器;容器分类;所有容器共有函数;顺序容器和关联容器共有函数;适配器;迭代器;算法;顺序容器;顺序容器——向量;向量的函数-1;向量的函数-2;向量的函数-3;向量的函数-3;向量操作;//1.cpp

#includeiostream

#includeiomanip

#includevector //包含向量容器头文件

usingnamespacestd;

intmain()

{

vectorintA(10);

intn;

intprimecount=0,i,j;

coutEnteravalue=2asupperlimit:;

cinn;

A[primecount++]=2; ;for(i=3;in;i++)

{if(primecount==A.size())

A.resize(primecount+10);

if(i%2==0)

continue;

j=3;

while(j=i/2i%j!=0)

j+=2;

if(ji/2)A[primecount++]=i;

}

for(i=0;iprimecount;i++)//输出质数

{coutsetw(5)A[i];

if((i+1)%10==0)//每输出10个数换行一次

coutendl;

}

coutendl;

};顺序容器——双端队列;*;*;顺序容器——列表;//3.cpp

#includeiostream

#includelist

usingnamespacestd;

intmain()

{

listintLink; //构造一个列表用于存放整数链表

inti,key,item;

for(i=0;i10;i++)//输入10个整数依次向表头插入

{

cinitem;

Link.push_front(item);

}

coutList:;//输出链表;listint::iteratorp=Link.begin();

while(p!=Link.end())//输出各节点数据,直到链表尾

{cout*p;

p++;//使P指向下一个节点

}

coutendl;

cout请输入一个需要删除的整数:;

cinkey;

Link.remove(key);

coutList:;//输出链表

p=Link.begin(); //使P重新指向表头

while(p!=Link.end())

{cout*p;

p++;//使P指向下一个节点

}

coutendl;

};容器适配器;#includeiostream

#includequeue //声明Queue容器适配器头文件

usingnamespacestd;

templateclassT

voidpopElements(Ts);

intmain()

{queueintintDequeQueue; //默认情况下以Queue容器作为根底数据结构

for(inti=0;i10;++i){

intDequeQueue.push(i); //用push函数将整数添加到deque容器Queue顶部

}

coutPoppingfromintDequeQueue:;

popElements(intDequeQueue); //将Queue中的元素弹出并输出

coutendl;

};templateclassT

voidpopElements(Ts) //定义模板函数

{

while(!s.empty()){

couts.front(); //用函数front读取Queue顶上的元素并输出

s.pop(); //用函数pop删除顶上的元素

}

};什么是迭代器;迭代器的类型;迭代器适配器;#includeiostream

#includevector

#includealgorithm

usingnamespacestd;

intmain()

{

intA[]={1,2,3

显示全部
相似文档