96SEO 2026-02-19 22:28 12
iterator(_head);}//const_iteratorconst_iterator

const_iterator(_head);}模板里面放多个参数在传模板时候如上图右边框起来上面是普通的迭代器下面有const用哪种就会自动传过去,同时Self也是对应的迭代器;
在pos位置插入这个pos是一个迭代器插入后这个节点以及前后节点的_next和_prev要注意怎么赋值;
//insert//现在要的是列表里面的那两个指针next\prev;//迭代器里面就有_node存的是Node*类型;void
pos._node;//pos是迭代器所以调用他的成员函数用点符号.虽然类似指针但是不能-,这个是指针用的Node*
newnode;}写完insertpush_back和push_front就可以直接用insert的
newnode;//再pos是end()的时候插入end()表示最后一个元素的后一个位置所以插入这个位置就是尾插insert(end(),
end()的意思是最后一个元素的后一个位置,那就是_head,这个头节点
//erase,erase是要返回删除的位置的后一个位置的Node*
pos){//cur里面存现在的地址//prev是cur上一个地址assert(pos
cur;//delete[]必须是数组,所以要注意return
pop_back(){//erase(iterator(_head-_prev));erase(--end());}//头删除void
pop_front(){erase(begin());}析构函数
head-prev;//重新关联起来双向带头循环列表}//析构~list(){clear();detete
nullptr;}clear的作用是清空这个链表里面的内容,_head这个头节点是没有data的所以是不用动的;
问string为什么这边写了要先置位nullptr然而这边的list没有呢
拷贝构造l1(l2),l1首先要初始化、至少里面是个nullptr,因为他还没有被创建出来
l2,首先你这个l1是不是已经是先定义出来的所以不用初始化的;
//拷贝函数l1(l2)//首先l1是没有创建出来的所以要初始化list(const
lt){//先初始化list里面成员函数是什么_head,_head里面的内容Node*
_head;//往里面插入后面的值就行了//方法一/*const_iterator
it.end()){push_back(*it);//运算符重载过*it了传过去的是_node-_datait;}*///方法二for
lt)//本质调用的迭代器{push_back(e);}}在string和vector里面是这样的,for循环本质使用的是迭代器有迭代器就有for循环e理论上就是*it
优点:支持随机访问operator[],排序、二分查找、堆算法等等可用到;
T//struct__list_node,两个_这种取名方式一般表示一会这个会在别的里面用在这里就表示list类里面直接用的类外面定义的struct
_data;//列表需要构造函数来初始化__list_node(const
T())//这个T(),指的是没有传值过来那就直接为0:_data(x),_next(nullptr)
,_prev(nullptr){}};//struct迭代器__list_iteratortemplateclass
_node;//构造函数struct怎么写构造函数、就是看这个里面成员函数有哪些__list_iterator(Node*
node):_node(node){}//构造传的是里面的成员函数、拷贝是传的类或者说这个结构体//浅拷贝这个是默认函数、不用写的__list_iterator(const
operator*读_node中的data,data的类型是T,所以函数返回值类型是TRef
//后置里面就放个int这是设计出来的伪参数用来区分前后置用的{__list_iteratorT
//直接拷贝函数、这个不用写、因为是浅拷贝深拷贝才要写_node
//后置里面就放个int这是设计出来的伪参数用来区分前后置用的{Self
//直接拷贝函数、这个不用写、因为是浅拷贝深拷贝才要写//node
tmp;}//!,两个迭代器之间不相等、迭代器里面的成员函数是_node,比的是这两个就是他指向一个列表的地址看这两个地址一样吗bool
_node-_data;//返回这个地址//指向这个地址调用时第一个-返回其地址、第二个-返回地址上的值迭代器做了优化调用只需要一个-}};templateclass
放public里面不然外面动不了T就是用不了模板私有的不能用typedef
const_iterator;//const迭代器//迭代器用节点的指针就行了iterator
iterator(_head-_next);//注意这里返回的是迭代器不是_head头部指针、这个是list类里面的成员变量//现在是把头部指针_head传过去然后迭代器调用他的拷贝函数;//这里面就是构造函数、因为传过去的是Node类型;}iterator
iterator(_head);}//const_iteratorconst_iterator
const_iterator(_head);}//构造函数list(){_head
//这里面不用写成Node[]是因为[]是数组用的这个就里面就开辟一个指针指向的地址空间[]是一个数组的空间_head-_next
_head;}//insert//现在要的是列表里面的那两个指针next\prev;//迭代器里面就有_node存的是Node*类型;void
pos._node;//pos是迭代器所以调用他的成员函数用点符号.虽然类似指针但是不能-,这个是指针用的Node*
newnode;//再pos是end()的时候插入end()表示最后一个元素的后一个位置所以插入这个位置就是尾插insert(end(),
x);}//erase,erase是要返回删除的位置的后一个位置的Node*
pos){//cur里面存现在的地址//prev是cur上一个地址assert(pos
cur;//delete[]必须是数组,所以要注意return
pop_back(){//erase(iterator(_head-_prev));erase(--end());}//头删除void
pop_front(){erase(begin());}void
head-prev;//重新关联起来双向带头循环列表}//析构~list(){clear();detete
nullptr;}//拷贝函数l1(l2)//首先l1是没有创建出来的所以要初始化list(const
lt){//先初始化list里面成员函数是什么_head,_head里面的内容Node*
_head;//往里面插入后面的值就行了//方法一/*const_iterator
it.end()){push_back(*it);//运算符重载过*it了传过去的是_node-_datait;}*///方法二for
lt)//本质调用的迭代器{push_back(e);}}//赋值运算l1
lt)//用地址来比较{clear();//看clear函数clear结束后就是初始化后的_head,所以也不用再写一遍_head的初始话for
lt)push_back(e);//就一行不用写{}了}return
*this;//*this,解引用this迭代器就是这个list类的对象了l1}//方法二listT
lt)//这里传参用到拷贝构造lt是临时对象{swap(_head,
*this;//*this,解引用this迭代器就是这个list类的对象了l1}private:Node*
lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);listint::iterator
lt;lt.push_back(Date());lt.push_back(Date());listDate::iterator
lt.begin();//调用data因为现在模板T就是date传参传过去date是可以的while
lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);print_list(lt);lt.pop_front();lt.pop_back();print_list(lt);}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback