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

一个空间做多个网站百度推广助手app下载

一个空间做多个网站,百度推广助手app下载,福建seo网站,应用商店官方免费下载这里写目录标题 1. list的介绍及使用1.1 list的介绍1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2. list的模拟实现2.1 list的反向迭代器 1. list的介绍及使用 1.1 list的介绍 list的…

这里写目录标题

  • 1. list的介绍及使用
      • 1.1 list的介绍
      • 1.2.1 list的构造
      • 1.2.2 list iterator的使用
      • 1.2.3 list capacity
      • 1.2.4 list element access
      • 1.2.5 list modifiers
      • 1.2.6 list的迭代器失效
  • 2. list的模拟实现
      • 2.1 list的反向迭代器

1. list的介绍及使用

1.1 list的介绍

list的文档介绍

1.2.1 list的构造

在这里插入图片描述

1.2.2 list iterator的使用

此处,大家可暂时将迭代器理解成一个指针,该指针指向list中的某个节点

在这里插入图片描述
在这里插入图片描述

1.2.3 list capacity

在这里插入图片描述

1.2.4 list element access

在这里插入图片描述

1.2.5 list modifiers

在这里插入图片描述

1.2.6 list的迭代器失效

前面说过,此处大家可将迭代器暂时理解成类似于指针,迭代器失效即迭代器所指向的节点的无效,即该节点被删除了。因为list的底层结构为带头结点的双向循环链表,因此在list中进行插入时是不会导致list的迭代器失效的,只有在删除时才会失效,并且失效的只是指向被删除节点的迭代器,其他迭代器不会受到影响。

void TestListIterator1()
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
list<int> l(array, array+sizeof(array)/sizeof(array[0]));
auto it = l.begin();
while (it != l.end())
{
// erase()函数执行后,it所指向的节点已被删除,因此it无效,在下一次使用it时,必须先给
其赋值
l.erase(it);
++it;
}
}
// 改正
void TestListIterator()
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
list<int> l(array, array+sizeof(array)/sizeof(array[0]));
auto it = l.begin();
while (it != l.end())
{
l.erase(it++); // it = l.erase(it);
}
}

2. list的模拟实现

2.1 list的反向迭代器

通过前面例子知道,反向迭代器的++就是正向迭代器的–,反向迭代器的–就是正向迭代器的++,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行包装即可。

template<class Iterator>
class ReverseListIterator
{
// 注意:此处typename的作用是明确告诉编译器,Ref是Iterator类中的类型,而不是静态
成员变量
// 否则编译器编译时就不知道Ref是Iterator中的类型还是静态成员变量
// 因为静态成员变量也是按照 类名::静态成员变量名 的方式访问的
public:
typedef typename Iterator::Ref Ref;
typedef typename Iterator::Ptr Ptr;
typedef ReverseListIterator<Iterator> Self;
public:
//
// 构造
ReverseListIterator(Iterator it): _it(it){}
//
// 具有指针类似行为
Ref operator*(){
Iterator temp(_it);
--temp;
return *temp;
}
Ptr operator->(){ return &(operator*());}
//
// 迭代器支持移动
Self& operator++(){
--_it;
return *this;
}
Self operator++(int){
Self temp(*this);
--_it;
return temp;
}
Self& operator--(){
++_it;
return *this;
}
Self operator--(int)
{
Self temp(*this);
++_it;
return temp;
}
//
// 迭代器支持比较
bool operator!=(const Self& l)const{ return _it != l._it;}
bool operator==(const Self& l)const{ return _it != l._it;}
Iterator _it;
};
http://www.hengruixuexiao.com/news/47228.html

相关文章:

  • 网站收录不稳定站长平台网站
  • 邵阳市建设投资经营集团网站帮忙推广的平台
  • 织梦的手机端网站模板下载seo云优化平台
  • c 多语言网站怎么做网络营销和电子商务区别
  • wordpress调用评论数据宁阳网站seo推广
  • 做网站 人员做网站哪家好
  • 好一点的app开发公司网站关键词优化案例
  • 门户网站概念做seo需要投入的成本
  • 玩网页游戏的网站福建seo外包
  • 上海市优化排名案例
  • 做类似于彩票的网站犯法吗产品推广方案范文
  • 定制网站建设加盟代理湖南网络推广服务
  • 网络设计报告书安卓优化大师历史版本
  • 科技网站设计公司新闻软文广告
  • 山东省住房城乡建设厅门户网站网店运营怎么学
  • 网站建设与维护成绩查询百度商家版下载
  • 深圳网站建设 独搜索引擎关键词优化方案
  • 天津科技公司网站网站如何宣传推广
  • wordpress访客统计插件seo网站推广seo
  • 合肥网页设计兼职绍兴seo排名外包
  • dw做网站有雪花效果百度权重是什么
  • A级网站建设服务百度推广怎么看关键词排名
  • 如何上传视频到公司网站推广页面制作
  • 黑龙江做网站的公司广告投放方案
  • 网站做成app需要多少钱网易疫情实时最新数据
  • 沂水做网站教育培训机构招生方案
  • 德国 网站后缀制作网站的软件有哪些
  • 济宁专业网站建设网站优化seo方案
  • 汽车网站代码广告设计公司
  • 做网站是否过时了网络营销理论包括哪些