5、泛型程序设计与C++标准模板库教程.ppt
文本预览下载声明
;主要内容;泛型程序设计;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
显示全部