c++stl程序代码案例

上传人:第*** 文档编号:49556115 上传时间:2018-07-30 格式:PPT 页数:32 大小:697.50KB
返回 下载 相关 举报
c++stl程序代码案例_第1页
第1页 / 共32页
c++stl程序代码案例_第2页
第2页 / 共32页
c++stl程序代码案例_第3页
第3页 / 共32页
c++stl程序代码案例_第4页
第4页 / 共32页
c++stl程序代码案例_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《c++stl程序代码案例》由会员分享,可在线阅读,更多相关《c++stl程序代码案例(32页珍藏版)》请在金锄头文库上搜索。

1、1例1:建立一个双端队列容器#include #include /使用deque需要包含的头文件 #include using namespace std; const int n=10; int main() deque de; int arrayn=10,1,3,4,5,7,2,9,8,6;int i; for(i=0; i #include /使用list需要包含的头文件 #include using namespace std; const int n=10;void display (list _list) if(!_list.empty() list:iterator it; fo

2、r(it=_list.begin();it!=_list.end(); it+) cout list1; list1.insert(list1.begin(),array,array+n); display(list1); list list2=list1; for(int i=0;i #include #include using namespace std; const int n=5;void display (list _list) if(!_list.empty() list:iterator it; for(it=_list.begin();it!=_list.end(); it+

3、) cout list1; list1.insert(list1.begin(),array,array+n); display(list1); list1.sort(greater();/按降序排列,greater为降序函数对象display(list1); list1.sort();/升序排列 display(list1); list list2=list1; for(int i=0;i() display(list1); display(list2); list1.reverse();/逆序 display(list1); C+STL中的容器2 7 5 3 3434 7 5 3 22 3

4、 5 7 345 7 342 3 5 5 7 7 34 34 Null list34 34 7 7 5 5 3 2运行结果:C+STL中的容器9例5: 简单的栈应用#include #include using namespace std;int main() stack sk1; for(int i=0;i #include using namespace std; const int N=7;void display(const vectorint main() vector invec; int arrayN=2,3,5,2,8,18,4; invec.insert(invec.begi

5、n(),array,array+N); display(invec); vector invec2; invec2.insert(invec2.begin(),invec.begin(),invec.begin()+invec.size()/2); display(invec2); 迭代器12void display(const vector vector:const_iterator it_end=_vec.end(); for(;iter!=it_end; iter+) cout InIt find(InIt first, InIt last, const T lfirst 和 last

6、这两个参数都是容器的迭代器,它们 给出了容器中的查找区间起点和终点。 这个区间是个左闭右开的区间,即区间的起点 是位于查找范围之中的,而终点不是lval参数是要查找的元素的值l函数返回值是一个迭代器。如果找到,则该迭代 器指向被找到的元素。如果找不到,则该迭代器 指向查找区间终点。16例7:可变序列算法实例#include #include /算法需要包含的头文件 #include /使用函数对象需要包含的头文件 #include using namespace std;class out public: void operator() (int x) cout ivec(array,arra

7、y+sizeof(array)/sizeof(int); vector:iterator iter; /找到第一个为4的元素位置,并输出此值和后面的所有值 for(iter=find(ivec.begin(),ivec.end(),4);iter!=ivec.end();iter+) cout(),4) #include #include #include using namespace std;const int n=9; class square /定义平方操作的函数对象 public: int operator() (int iter) return iter*iter; ; class

8、 odd_by_one /定义每次乘以2的函数对象 public: int operator()() return x=x*2; private: static int x; ; int odd_by_one:x=1;22int main() int arrayn=0,1,2,3,5,3,8,5,1; vector ivec1(n,0); vector:iterator iter=ivec1.begin(); ostream_iterator output(cout,“t“);/定义输出流迭代器 copy(array,array+n,output);/利用copy将数组内容考到输出流对象中 c

9、out ivec2(array,array+n); generate(ivec2.begin(),ivec2.end(),odd_by_one(); copy(ivec2.begin(),ivec2.end(),output); cout ilist1(n,0); transform(ivec1.begin(),ivec1.end(),ilist1.begin(),square(); copy(ilist1.begin(),ilist1.end(),output); cout:iterator it=remove(ilist1.begin(),ilist1.end(),9); ilist1.e

10、rase(it,ilist1.end(); copy(ilist1.begin(),ilist1.end(),output); cout #include #include #include using namespace std; const int n=8;int main() int arrayn=4,3,7,2,2,3,8,5; vector ivec1(array,array+n); ostream_iterator output(cout,“ “); /输出容器中最大和最小的元素 cout ivec2(5,0); partial_sort_copy(ivec1.begin(),iv

11、ec1.begin()+5,ivec2.begin(),ivec2.end(); copy(ivec2.begin(),ivec2.end(),output); cout头文件。31例10:数值算法实例#include #include #include /所需要包含的头文件 using namespace std; const int n=6; int main() int arrayn=2,2,1,5,3,6; vector ivec1(array,array+n); vector ivec2(ivec1); ostream_iterator output(cout,“ “); /对序列进

12、行求和累积 coutaccumulate(ivec1.begin(),ivec1.end(),0)endl; /对序列进行部分求和 partial_sum(ivec1.begin(),ivec1.end(),output); coutendl; /对序列求相邻元素的差 adjacent_difference(ivec1.begin(),ivec1.end(),output); coutendl; /对两个向量做内积 coutinner_product(ivec1.begin(),ivec1.end(),ivec2.begin(),0)endl; 19 2 4 5 10 13 19 2 0 -1 4 -2 3 79 Press any key to continue运行结果:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号