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

营销网站建设技术搜易网优化的效果如何

营销网站建设技术,搜易网优化的效果如何,个人工作室和公司的区别,海口小微企业网站建设系列文章目录 文章目录 系列文章目录前言list_node<T>&#xff08;节点&#xff09;_list_iterator<T, Ref, Ptr>&#xff08;迭代器&#xff09;成员变量构造函数运算符重载 List<T>&#xff08;链表&#xff09;成员变量构造函数析构函数区间构造函数拷贝构…

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • list_node<T>(节点)
  • _list_iterator<T, Ref, Ptr>(迭代器)
    • 成员变量
    • 构造函数
    • 运算符重载
  • List<T>(链表)
    • 成员变量
    • 构造函数
    • 析构函数
    • 区间构造函数
    • 拷贝构造
    • 赋值重载
    • Modifiers(修改器)
    • list的迭代器失效


前言

模拟实现list类


STL3.0(SGI版本)

list_node(节点)

//节点类
template<class T>
struct list_node
{//成员变量list_node<T>* _next;list_node<T>* _prev;T _data;//构造函数list_node(cosnt T& x = T()):_next(nullptr), _prev(nullptr),_data(x){}
};

_list_iterator<T, Ref, Ptr>(迭代器)

成员变量

  template<class T, class Ref, class Ptr>struct _list_iterator{//用类来封装node*typedef list_node<T> node;typedef _list__iterator<T, Ref, Ptr> self;node* _node;};

构造函数

//构造函数
_list_iterator(node* n):_node(n)
{}

运算符重载

//Iterator
Ref operator*()
{return _node->_data;
}Ptr operator->()
{//it->_a1 => it->->_a1;return &_node->_data;
}self& operator++()
{_node = _node->_next;return *this;
}self& operator++(int)
{self tmp(*this);_node = _node->_next;return tmp;
}self& operator--()
{_node = _node->_prev;return *this;
}self& operator--(int)
{self tmp(*this);_node = _node->_prev;return tmp;
}bool operator !=(const self& s)
{return _node != s._node;
}bool operator ==(const self& s)
{return _node == s._node;
}

List(链表)

成员变量

template<class T>
class list
{typedef list_node<T> node;public:typedef _list_iterator<T, T&, T*> iterator;typedef _list_iterator<T, const T&, const T*>const_iterator;private:node* _head;//节点指针
};

构造函数

void empty_init()
{//创建头节点_head = new node;_head->_next = _head;_head->_prev = _head;
}list()
{empty_init();
}

析构函数

//析构函数
~list()
{	clear();//释放头节点delete _head;_head = nullptr;
}

区间构造函数

template <class Iterator>
list(Iterator first, Iterator last)
{empty_init();while (first != last){push_back(*first);++first;}
}

拷贝构造

void swap(list<T>& lt)
{std::swap(_head, lt._head);
}list(const list<T>& lt)
{empty_init();list<T> tmp(lt.begin(), lt.end());swap(tmp);
}

赋值重载

list<T>& operator=(list<T> tmp)
{swap(tmp);return *this;
}

Modifiers(修改器)

void push_back(cosnt T& x)
{insert(end(), x);
}void push_front(const T& x)
{insert(begin(), x);
}void insert(iterator pos, const T& x)
{node* cur = pos._node;node* prev = cur->_prev;node* new_node = new node(x);prev->_next = new_node;new_node->_prev = prev;new_node->_next = cur;cur->_prev = new_node;
}iterator erase(iterator pos)
{assert(pos != end());//头节点不能删node* prev = pos._node->_prev;node* next = pos._node->_next;prev->_next = next;next->_prev = prev;delete pos._node;//删除节点后,返回后一个节点迭代器return iterator(next);
}void clear()
{iterator it = begin();while (it != end()){erase(it++);}
}void pop_back()
{erase(--end);
}
void pop_front()
{erase(begin());
}

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);}
}
http://www.ds6.com.cn/news/26667.html

相关文章:

  • 网站建设论文500字推广网站哪个好
  • 装修网站怎么做的好新闻源
  • 中英双语网站建设合同泰安seo网络公司
  • wordpress挖seo排名第一
  • 网站备案全国合作拍照点深圳做网站公司哪家好
  • 有没有在线做动图的网站百度关键词怎么设置
  • 台州城乡建设局网站信息流优化师简历模板
  • 开发一个进销存app需要多少钱图片seo优化是什么意思
  • 网站源码下载 支付二维码怎么弄seo学校
  • 上海市建设人才网站线上营销培训
  • 政府网站建设管理会议主持词6长沙seo培训班
  • 辽阳建设网站公司报价搜索引擎营销的主要方式有哪些?
  • 徐州网站开发怎样常德网站建设公司
  • 云主机可以放几个网站怎么做网站主页
  • 用什么软件做介绍视频网站抖音竞价推广怎么做
  • 网站设计优点it培训机构排名及学费
  • wordpress废弃函数郑州客串seo
  • 自己画装修设计图的软件网站排名优化培训
  • 如何用eclipse做网站seo精准培训课程
  • 杭州网络科技网站广告投放是什么工作
  • 宁夏网站建设一条龙怎么接游戏推广的业务
  • 企业网站设计的基本原则有哪些名词解释搜索引擎优化
  • 抚顺做网站的公司百度网址大全下载
  • 昌黎县城乡建设局网站网站优化员seo招聘
  • 济南网站建设培训线下推广方式
  • 济南网站优化seo智谋网站优化公司
  • 聚美优品宁波谷歌seo推广
  • 山东政府网站建设torrentkitty磁力天堂
  • 自己做视频用什么软件seo与sem的区别与联系
  • 网站开发企业培训报名舆情监测软件免费版