1 / 2
文档名称:

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

格式:pdf   大小:132KB   页数:2页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:小小布 2022/11/21 文件大小:132 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:该【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=新的值)。