- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ACM-STL简介
ACM 暑期训练 --STL简介 STL简介 什么是STL STL就是Standard Template Library(标准模板库)的简称,它是由Alexander Stepanov和Meng Lee在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前,Alex和David Musser已对该技术进行了很长一段时间的研究。STL是多年来编程应用中常用组件的集合,STL的贡献是将各组件和接口泛化及标准化。这样可以极大地提高编程效率,STL现在是C++的一部分,任何C++平台都包含着它。 STL是有用的 哪有用? 哪都有用! 进入STL 下面带给大家 分别简单介绍,sort,next_permutation,map,stack,queue, list algorithm #includealgorithm using namespace std; sort(a,a+n); sort(a,a+n,cmp); qsort(a,n,sizeof(*),cmp); 下面给大家演示下sort函数的用法 ID_1024 #includeiostream #includealgorithm using namespace std; int main() { int a[2000],len,i; cinlen; while(1) { If(0==len) break; for(i=0;ilen;i++) cina[i]; sort(a,a+len); for(i=0;ilen;i++) couta[i]endl; cinlen; } return 0; } 由此可见调用STL中的函数,很方便的对数组进行排序了,从时间上比你去写冒泡排序或其它排序快的多吧. sort不仅可以对数组进行排序,还可以对结构体进行排序,只需对 进行重载. int cmp(type a, type b) { return a.x b.x; } //对结构体成员变量x进行升序排(stl_sort.cpp) next_permutation 函数 next_permutation(start,end ) Start, end分别是所对数组进行全排列的开始地址,和结束地址 1127 #includeiostream #includealgorithm using namespace std; int main(int argc, char *argv[]) { int n; char str[10]=123456789, *start, *end; cinn; start = str; str[n] = \0; end = str[n]; coutstrendl; while(next_permutation(start,end)) { coutstrendl; } return 0; } map简介 STL的好处在于封装了许多数据结构和算法(algorithm),map是其典型代表。map,就是映射,顾名思义,map实现的功能就是帮助你建立一一对应的关系。你可以通过map存储数据,然后很快的找到他们。 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 map可以干什么 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。 快速插入Key - Value 记录。 快速删除记录 根据Key 修改value记录。 遍历所有记录。 map #includemap using namespace std; mapint,int my; #includestring mapstring,int my; map my[x]=y; my[-100]=2; my[“ok”]=3; my.clear(); my.erase(key); my.erase(```); map mapint,bool::iterator?it; my.erase(it); it=my.lower_bound(v[i]);?? it--; it++; 让我们来做个示范 1304 map的用法(stl_map.cpp) SOJ 1627,2759 queue #includequeueusing?namespace?std; queuetype?myqueue; myqu
文档评论(0)