- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STL容器 STL容器实现了一些常用的数据结构 vector 数组/堆栈 list 链表 queue 队列 deque 双向队列 set 集合 map 字典、映射 priority_queue 优先队列 Iterator 可以把Iterator看成某种指针,指向容器内部 C语言中的指针就是一种特殊的Iterator Iterator和指针一样支持*和-操作 可以使用Iterator的++运算符来遍历容器 一般的容器都提供了begin()和end()两个函数来得到指向容器头、尾的两个Iterator。其中begin指向头元素,end指向最后一个元素的后一个位置。 Iterator的分类 Input Iterator Output Iterator Forward Iterator Bidirectional Iterator 双向移动,只支持++和--操作 list/map/set Random Access Iterator 支持所有的指针操作 vector vector #include vector 动态数组 vectorint arr; arr = vectorint(10); arr.push_back(3); cout arr[2] endl; arr = arr2; if (arr arr2) vector 常用的操作 arr.clear(); arr.push_back(5); arr.pop_back(); arr.front(); arr.back(); arr.erase(arr.begin() + 5); arr.erase(arr.begin(), arr.end()); arr.insert(arr.begin() + 5, 4); vector vector的初始化 vectorint arr(100, 0); 或者 arr = vectorint(100, 0); vector VS 数组 vector的灵活性比较好,不需要考虑长度问题,可以减少编程复杂度,使用起来和数组一样方便。但是vector的效率远低于数组,在效率要求较高时慎用。 vector vector的遍历 for (vectorint::iterator vi = arr.begin(); vi != arr.end(); ++vi) { cout *vi endl; } 或者 for (int i = 0; i v.size(); ++i) { cout v[i] endl; } list #include list 双向链表 push_back, pop_back, push_front, pop_front 由链表的特性可知,list的迭代器不支持算数运算。例如l.begin() + 5是非法的,而list也不支持[]运算符,因此遍历list只能使用Iterator方式。 Part I ACM竞赛简单题秒杀攻略 简单题 简单题的特点: 没有算法或者只有基本的算法 编程复杂度不高 分辨简单题: 简单题一般题目较短 校赛的第一题往往是简单题 观察rank list和场上气球情况 简单题是校赛决胜的关键 年份 总题数 简单题数量 AC所有简单题可获奖项 2005 8 4 二等奖 2006 8 4 三等奖 2007 8 4 二等奖 2008 9 4 三等奖 2009 9 4 三等奖 如何秒杀简单题 提高代码正确率 提高写代码的速度 熟练掌握各种基本算法 Step 1: 解析题目 背景介绍、问题提出 输入输出要求 输入输出样例 时间、空间限制以及其他信息 Step 2: 了解输入输出 输入输出是分离的 输入文件 输出文件 输入,以EOF结束(例题:ZOJ 1001) while (scanf(“%d”, n) != EOF) { … } while (cin n) { … } 输入,以0结束(例题:ZOJ 1115) while (scanf(“%d”, n) != EOF n != 0) { … } - Step 2: 了解输入输出 输入,先输入case数 scanf(“%d”, nCases); for (i = 0; i nCases; ++i) { ... } 整行输入 char buffer[256]; gets(buff); string buf; getline(cin, buff); Step 2: 了解输入输出 输出,case之间用空行分隔(例题:ZOJ 1152) int nCases = 0; { if (nCases++) printf(“\n”); … } 输出,每个case之后输出空行(例题:ZOJ 1457) { … printf(“%d\
您可能关注的文档
最近下载
- 2025年辽宁省初中学业水平考试英语模拟试卷试题(含答案).pdf VIP
- 螺纹联接与螺旋传动介绍.ppt VIP
- 《大学美育》教案 第13课 光影流转的传奇 影视之美(二).docx VIP
- 小学生3500个常用汉字归类(带拼音).pdf VIP
- 《大学美育》教案 第12课 光影流转的传奇 影视之美(一).docx VIP
- 《大学美育》教案 第11课 五彩缤纷的世界:绘画之美(二).docx VIP
- Dahua大华以太网交换机(桌面式管理型)_WEB使用说明书_V1.0.0.pdf
- 党校中级考试资料.docx VIP
- (2025秋新版)人教版三年级数学上册全册教案.docx
- 智能体@AEI:Agentic Al,开启企业融合智简运维新范式.pdf
文档评论(0)