下载此文档

STL库常用容器和算法总结.pdf


文档分类:IT计算机 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
该【STL库常用容器和算法总结 】是由【小小布】上传分享,文档一共【2】页,该文档可以免费在线阅读,需要了解更多关于【STL库常用容器和算法总结 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。STL库常⽤容器和算法总结
⼀.string库函数
(只适⽤于字符串string)
引⼊头⽂件#include<sstream>
创建流:stringstreamss;
整数转字符串:ss<<n;ss>>str;
字符串转整数:ss<<str;ss>>n;
注意使⽤()关闭流
**+**
((),())//字符串逆序
⼦串:
.substr(index,len)第index个位置(从0开始数)起长度为length的⼦串
.find(‘‘)或find("")找字符或字符串在字符中出现的位置
.find(’’,3)从下标3开始查起
.find_first_of(’’)()查找第⼀此出现和最后⼀次出现字符’‘的位置
⼊:
(2,“123”);//在下标2处插⼊字符串"123"
(3,s2);//在下标2处插⼊s2
(3,5,‘X’);//在下标3处插⼊5个‘X’
:.erase(index)(1,3)删除下标1后⾯长度为3的字符串
⼆.STL库
:可⽤来看成动态数组,⾥⾯可以存⼊任何类型的数据,包括结构体。特点:可以向数组⼀样直接访问。
:封装好的链表
两者常见共有操作:
两者都没有⾃带的find函数,可借⽤算法库⾃带的find(起始地址,终⽌地址,值)实现
.push_back()//尾部插⼊.pop_back()//尾部删除
.front()//第⼀个元素的引⽤.back()//最后⼀个元素的引⽤
.insert()//在指定位置插⼊⼀()//删除指定位置的⼀个或⼀()//()//
()//交换两个容器中的所有元素
.clear()//清空容器中所有元素
list特有操作:
.push_front()//头部插⼊.pop_front()//()
//排序(⽆法⽤算法库⾥的sort函数).splice()//将⼀个list容器中的元素插到另⼀()
//合并两个事先已排序的list容器,(val)//删除容器中所有等于val的元素
.remove_if()//删除容器中满⾜()//删除容器中相邻的重复元素(⼀般排好序再使⽤).reverse()//反转容器中
元素的顺序
:封装好的栈//stack和queue⽆()//()//出
:封装好的队列//可以⽤链表或vector模拟栈和队列
集合
**set:**⾃动排好序的集合,不允许有相同元素。
**multiset:**⾃动排好序的集合,允许有相同元素。
两者常见共有操作
.find(val)//查找值为val的元素并返回所在迭代器位置,();
.empty()//()//返回容器元素个数
.swap()//()//清空容器中所有元素
.insert()//向容器中插⼊元素并默认排好序,注意:如果是set,容器⾥含有待插元素时,此操作相当于不执⾏
.count(val)//查找集合⾥值为val的元素个数并返回,⼀般set⾥⽤来判断是否存在值为val的元素
映射:
**map:**每个元素都分为关键字和值两部分,容器中的元素是按关键字排序的。不允许有多个元素的关键字相同。
**multimap:**和map类似,差别在于元素的关键字可以相同。
默认升序,若想降序:map<string,int,greater>
两者常见共有操作:访问⽅式:迭代器->first,迭代器->second//分别访问关键字和值
.find(key)//查找关键字为key的元素并返回所在位置的迭代器
.empty()//()//返回容器元素个数
.swap()//()//清空容器中所有元素
.insert(pair<string,int>(str,int))//插⼊键值对
.erase(key)//(position)//删除迭代器position位置处的键值对
.count(key)//查找映射⾥关键字为val的元素的键值对个数并返回,⼀般map⾥⽤来判断是否存在值为val的键值对
注意:
**不能修改set或multiset容器中元素的值。因为元素被修改后,容器并不会⾃动重新调整顺序,于是容器的有序性就会被破坏,
再在其上进⾏查找等操作就会得到错误的结果。**因此,如果要修改set或multiset容器中某个元素的值,正确的做法是:
先删除该元素,再插⼊新元素。
同理,也不能修改map和multimap容器中元素的关键字,但是能修改后⾯的值(⽅式:迭代器->second=新的值)。

STL库常用容器和算法总结 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小小布
  • 文件大小132 KB
  • 时间2022-11-21