当前位置: 首页 > news >正文

温室大棚建设 网站及排名转卖wordpress把头像改为QQ头像

温室大棚建设 网站及排名转卖,wordpress把头像改为QQ头像,如何用网站做课件,百度移动网站检测目录 1.迭代器的分类 2.算法举例 3.push_back/emplace_back 4.insert/erase函数介绍 5.splice函数介绍 5.1用法一:把一个链表里面的数据给另外一个链表 5.2 用法二:调整链表当前的节点数据 6.unique去重函数介绍 1.迭代器的分类 我们的这个迭代器…

目录

1.迭代器的分类

2.算法举例

3.push_back/emplace_back

4.insert/erase函数介绍

5.splice函数介绍

5.1用法一:把一个链表里面的数据给另外一个链表

5.2 用法二:调整链表当前的节点数据

6.unique去重函数介绍


1.迭代器的分类

我们的这个迭代器之前就是按照功能进行分类的,现在我们可以按照性质进行分类,这个容器具有什么样子的性质就决定了,这个容器可以使用怎样的这个算法,和迭代器的类型;

例如下面的这个性质划分的迭代器:

单向迭代器:就是只会支持++的迭代器,像这个forward_list就是单向的链表,肯定就只可以进行单向的访问,unordered_map就是后面学的这个哈希表,也是支持单向的;

双向迭代器:支持加加和减减操作的迭代器,例如我们的这个list链表,以及后面学习的这个map和set都支持双向的迭代器;

随机迭代器:就是我们可以对于这个容器里面的元素进行随机访问,这个vercot和string以及后面的这个deque都是支持随机访问迭代器的;

2.算法举例

下面的就是两个函数支持的这个迭代器的类型,例如我们的这个sort函数里面的这个randomaccessiterator就是一个随机的迭代器,也就是说我们只能使用上面的这些容器里面的类似于这个vector,string之类的,不支持随机迭代器的就会被报错;

reverse是进行的这个数据的逆置,我们的这个里面的迭代器就是双向的迭代器,因为我们进行这个逆置操作的时候,需要加加和减减操作,这个只有使用支持加加和减减的容器才是可以的;

上面的这些都体现了,我们的这个容器的底层结构决定了他可以使用哪些类型的迭代器,进而决定我们的这个对应的算法是否可以使用这些容器,像下面的这个函数,就已经明确了这个迭代器的类型,因此有的容器是无法使用这个函数的;

find函数的迭代器类型:inputiterator类型的迭代器,实际上这个就是只读,只写迭代器的一种,只读只写的迭代器并不是真实的存在的,但是这个就是函数实现里面只有++操作,上面的无论是随机,单向,双向迭代器都是支持这个++的,因此我们就可以使用任意类型的迭代器,表示这个input的类型,实际上这个就是继承的性质,我们可以传递任意的子类的类型迭代器;

再来看一个案例:我们使用这个sort函数进行排序,需要包含这个头文件algorithm这个表示的就是算法的意思,我们的这个看似没有问题,实际上一旦运行起来就会报错,因为我们的这个sort函数需要支持随机访问迭代器,但是这个lt就是一个双向的迭代器,不会随机访问,因此这个类型上就是不匹配的,随意编译的时候就会报错;

但是这个不是意味着我们的这个list容器不可以使用这个sort函数,而是没有办法使用这个库里面去sort函数,实际上这个list里面是实现了一个内置的这个sort函数的,供自己进行排序使用;

3.push_back/emplace_back

上面的这个push_bak函数就是向这个容器里面插入数据的,因此这个使用的多一些,实际上这个emplace_back函数和他没有很大的区别,唯一的区别就是这个emplace函数支持模版的可变参数

什么是可变参数,就是我们的这个emplace函数调用的时候,可以在这个函数的参数里面写多个,push_back只能有一个参数;

下面的这个push_back就是只能传递一个参数,但是这个emplace_back函数的参数可以是多个参数,这个我们知道可以这样使用就可以了;

4.insert/erase函数介绍

这个其实和之前的也是没有很大的区别的,就是删除这个指定位置的数据,直接传递这个位置的下标,如果是想要插入数据,就无法在指定的这个位置插入数据,这个时候,我们就需要在while循环里面,让这个it指针指向我们想要插入的位置;

这个没有特殊说明的话,都是在这个位置的前面进行插入,例如给一个参数2,就是在2下标这个位置的前面进行数据的插入;

void test01()
{list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);lt.push_back(5);lt.push_back(6);//直接打印出来插入数据之后的结果for (auto e : lt){cout << e << " ";}cout << endl;//下面的这个就是向迭代器的指定位置插入数据auto it = lt.begin();int k = 3;while (k--){++it;}lt.insert(it, 30);//打印插入数据之后的情况for (auto e : lt){cout << e << " ";}cout << endl;//输入下标进行查找,找到之后删除这个数据int x = 0;cin >> x;it = find(lt.begin(), lt.end(), x);if (it != lt.end()){lt.erase(it);}//打印删除之后的结果for (auto e : lt){cout << e << " ";}cout << endl;
}

5.splice函数介绍

5.1用法一:把一个链表里面的数据给另外一个链表

5.2 用法二:调整链表当前的节点数据

这个参数也是默认的从指定的这个下标的前面开始进行计数

上面的这个进行splice函数调用的时候,使用的是4个参数,第一个参数指的就是我们的迭代器的位置,第二个指的就是我们的容器,第三个是起始位置,第四个就是终止位置;

6.unique去重函数介绍

unique的意思就是独特的,在我们的这个容器里面,就是指的去重复值,下面的这个容器里面插入了几个数据,我们调用这个函数打印输出结果,就会发现原来的这个元素里面重复的都被去掉了;

void test05()
{list<int> lt;lt.push_back(1);lt.push_back(20);lt.push_back(3);lt.push_back(5);lt.push_back(5);lt.push_back(4);lt.push_back(5);lt.push_back(6);lt.sort();for (auto e : lt){cout << e << " ";}cout << endl;lt.unique();for (auto e : lt){cout << e << " ";}cout << endl;
}

http://www.yayakq.cn/news/151282/

相关文章:

  • 做网站为什么要备案简单的网站设计案例
  • 门户网站编辑联系方式网站建设分金手指专业三十
  • 网站方案建设书模板福州全网营销推广公司
  • 工程服务建设网站艺术创意设计
  • 外贸网建站c2c网站是什么
  • 浙江住房与城乡建设厅官方网站查询西安传媒公司
  • 网站如何选取关键词视频素材网站怎么建
  • 牟平网站制作国外优秀网页设计欣赏
  • 做零食网站的首页模板商城网站可以不备案吗
  • 手表网站欧米茄泰安手机网站建设
  • 宿舍内网络组建方案泰安网站建设优化
  • 网站怎么验证用户是否登陆app下载安装官方免费下载
  • 怎么用网站做转换服务器wordpress 多站点管理
  • 青岛网站建设公司怎么样网站建设与维护是什么
  • 深圳做自适应网站制作asp.net 网站访问量
  • 免费自助建站网站东营做网站优化哪家好
  • 学网站建设多少钱济南公交优化
  • 网站里面的视频功能怎么做网站活动怎么做的
  • 开发网站公司如何运营网站的要素是什么意思
  • 徐州cms建站系统中卫网架钢结构设计
  • 北京如何优化网站网站建设模板
  • 免费注册网站域名可以用吗网站 设置特殊的字体
  • 公司里面有人员增减要去哪个网站做登记吴江注册公司
  • 给网站添加关键词毕业设计做视频网站设计
  • 装饰公司营销网站模板jQuery EasyUI网站开发实战
  • php电子商务网站建设宿迁做网站优化
  • 商城网站建站方案建设工程标准合同范本
  • 做好一个网站需要多久企业网站设计与建设
  • python 网站架构黄冈网站设计推广哪家好
  • 龙岗商城网站建设哪家便宜加强学院网站的建设与管理