#include<stdio.h>
//sort的定义
#include<algorithm>
//vector的定义
#include<vector>
//deque的定义
#include<deque>
//同样,引入std命名空间
usingnamespacestd;
//用数组保存
intfriends[1000];
//用vector保存
vector<int>vtFriends;
//用deque保存
deque<int>dqFriends;
intmain()
...{
intT;
scanf("%d",&T);
intiCase;
for(iCase=1;iCase<=T;iCase++)
...{
//每次要将vector和deque请空
vtFriends.clear();
dqFriends.clear();
printf("Scenario#%d: ",iCase);
intn,f,tn;
scanf("%d%d",&n,&f);
//由于后面要找三次,所以先把n的值保存下来
tn=n;
inti;
for(i=0;i<f;i++)
...{
//保存到数组
scanf("%d",&friends[i]);
//保存到vector
vtFriends.push_back(friends[i]);
//保存到deque
dqFriends.push_back(friends[i]);
}
//排序,如果不给第三个参数,默认是按升序排
//sort实现的是快速排序,它是不稳定排序,
//需要稳定排序时,用stable_sort,用法与sort完全一样
//对数组进行排序
sort(friends,friends+f);
//对vector进行排序
sort(vtFriends.begin(),vtFriends.end());
//对deque进行排序
sort(dqFriends.begin(),dqFriends.end());
//在数组里查找
for(i=f-1;i>=0;i--)
...{
n-=friends[i];
if(n<=0)
break;
}
//在vector里查找
//先恢复n的值
n=tn;
for(i=f-1;i>=0;i--)
...{
n-=vtFriends.at(i);
if(n<=0)
break;
}
//在deque里查找
//先恢复n的值
n=tn;
for(i=f-1;i>=0;i--)
...{
//deque的at方法效率比vector低,
//因为deque的元素在内存上不完全是连续的
n-=dqFriends.at(i);
if(n<=0)
break;
}
if(i<0)
puts("impossible");
else
printf("%d ",f-i);
puts("");
}
return0;
}
使用的我们学院一个牛人写的一篇东西哈,这里介绍vector,deque和sort的用法,这些都是STL的内容,给你一个网站吧,
http://www.stlchina.org/;
不过一般好像都不提倡一开始就在程序中使用STL,那些算法都自己写写最好,然后等学会了再用也会理解得更深入的!
分享到:
相关推荐
STL的容器deque的详细使用方法和文档 6.0代码
非常实用的STL容器讲解学习,内容全,讲解详细 包括Vector、Vector、String、Deque、sort、set、map,绝对有用!!
SGI STL之vector源码,带注释
STL中vector、list、deque和map的区别
欢迎加入群(VC编程高手160037036)探讨==dos版大学人员管理系统 STL的运用,欢迎大家下载,尤其是想运用stl的,只要30分钟让你搞定STL STL 是vc编程必不可少的,应用合集,纵向比较
最新的STL源码,最新的STL源码,最新的STL源码
stl源码剖析stl源码剖析stl源码剖析stl源码剖析stl源码剖析stl源码剖析stl源码剖析
STL源码剖析、STL入门教程、泛型编程与STL、标准模板库STL介绍
STL 中的常用的Vector Map Set Sort用法
STL源码剖析.pdf
《STL源码剖析》不是讲怎么样使用STL和STL技巧的,是关于STL核心代码的剖析,是面向有...和C++stl是比较好的入门且使用的书籍,以后有了一定的STL经验,再去研究STL源码剖析,相信那时候你就会有了另一番对STL的领悟。
STL源码剖析高清PDF电子书,作者侯捷,C++泛型变成经典书籍
STL源码剖析 STL源码剖析 STL源码剖析 STL源码剖析 STL源码剖析 STL源码剖析 STL源码剖析
这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现...
这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;...
SGI vector源码
STL源码剖析--教程精华STL源码剖析--教程精华STL源码剖析--教程精华STL源码剖析--教程精华STL源码剖析--教程精华STL源码剖析--教程精华STL源码剖析--教程精华
STL 源码剖析 高清版(非扫描),学习STL的经典书籍。
C++实现STL容器之deque
STL入门 STL入门 STL入门 STL入门 STL入门 STL入门