- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
02 stl基础
* * set set能够将插入的元素自动排序,而且会自动忽略相同的元素,它的常用操作包括: insert():插入。 erase():删除。 clear():清空所有元素。 size():取得大小。 试试 HDoj 1327, HLoj 1125 * * map的功能 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。 快速插入Key - Value 记录。 快速删除记录 根据Key 修改value记录。 遍历所有记录。 在map中插入元素 改变map中的条目非常简单,因为map类已经对[]操作符进行了重载 enumMap[1] = One;enumMap[2] = Two; map * * 查找并获取map中的元素 下标操作符给出了获得一个值的最简单方法: string tmp = enumMap[2]; 但是,只有当map中有这个键的实例时才对,否则会自动插入一个实例,值为初始化值。 对此,我们可以使用find()和count()方法来发现一个键是否存在。 从map中删除元素 移除某个map中某个条目用erase() 该成员方法的定义如下 iterator erase(iterator it); //通过一个条目对象删除 iterator erase(iterator first, iterator last);????????//删除一个范围 size_type erase(const Key key); //通过关键字删除 * * #includemap #includealgorithm int main() { mapstring, int m; mapstring, int::iterator iter; string s; while(cins) { m[s]++; //很重要的一种插入元素的方法,下标法 m.insert( make_pair(“hello”, 1) ); //插入元素的另一种办法 for(iter = m.begin(); iter != m.end(); ++iter) cout iter-first iter-second endl; //读取元素的办法 iter = m.find(hello); // 查找元素的方法 find函数,注意检测的办法 if(iter != m.end()) cout yes, found it endl; m.erase(iter); // m.erase(world); //查找元素的方法 count函数,返回0或者1,表示有或无 if(m.count(world)==1) cout error endl; } return 0; } * * 迭代器(iterator) terator(迭代器)是用于访问容器中元素的指示器,从这个意义上说,iterator(迭代器)相当于“用来遍历的指针”,也可以把iterator(迭代器)看作是一种泛化的指针。 * * 迭代器(iterator)(示例:iterator) 可遍历STL容器内全部或部分元素的对象 指出容器中的一个特定位置 迭代器的基本操作 操作 效果 * 返回当前位置上的元素值。如果该元素有成员,可以通过迭代器以operator -取用 ++ 将迭代器前进至下一元素 ==和!= 判断两个迭代器是否指向同一位置 = 为迭代器赋值(将所指元素的位置赋值过去) * * 迭代器(iterator) 所有容器都提供获得迭代器的函数 操作 效果 begin() 返回一个迭代器,指向第一个元素 end() 返回一个迭代器,指向最后一个元素之后 begin() end() 半开区间[beg, end)的好处: 1.为遍历元素时循环的结束时机提供了简单的判断依据(只要未到达end(),循环就可以继续) 2.不必对空区间采取特殊处理(空区间的begin()就等于end()) * * 迭代器(iterator) 所有容器都提供两种迭代器 container::iterator以“读/写”模式遍历元素 container::const_iterator以“只读”模式遍历元素 迭代器示例:iterator begin() end() ++ pos * * 迭代器(iterator) 迭代器分类 双向迭代器 可以
您可能关注的文档
最近下载
- 第2课 诸侯纷争与变法运动 知识点总结.pdf VIP
- 《危险源识别与评价》课件.pptx VIP
- 人教版(部编本)五年级上册中国民间故事(完美版)PPT课件.ppt VIP
- 基于单片机的自动存包柜设计.doc VIP
- 爆炸危险环境电力装置设计规范GB50058-2014.pptx VIP
- 1.新版历年全国高考英语高频词汇必备表汇总打印版.pdf
- 《车载防撞垫使用技术要求》.pdf VIP
- 爆炸危险环境电力装置设计规范学习课件.pptx VIP
- 成人高考专升本《大学语文》模拟题及答案.docx VIP
- 华鑫证券-汽车行业智能驾驶系列研究(二):Robotaxi的商业模式前景展望-240919.pptx VIP
文档评论(0)