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

网站ip指向列表北京有多少家网站

网站ip指向列表,北京有多少家网站,网站建设费一般摊销几年,项城网站设计一、list的介绍及使用 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素…

一、list的介绍及使用

  • list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。
  • list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。
  • list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。
  • 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。
  • 与其他序列式容器相比,list和forward_list最大的缺陷是不支持任意位置的随机访问,比如:要访问list的第6个元素,必须从已知的位置(比如头部或者尾部)迭代到该位置,在这段位置上迭代需要线性的时间开销;list还需要一些额外的空间,以保存每个节点的相关联信息(对于存储类型较小元素的大list来说这可能是一个重要的因素)

list文档

list是双向带头链表

注意:

在阅读list文档时会发现list有自己sort函数

因为list的迭代器属于双向迭代器,而std算法库里的sort是使用随机迭代器的,所以list不适合用std算法库里的sort。但是list的sort底层是归并排序效率比不过算法库里的sort,如果遇到少量数据可以使用list的sort,遇到大量数据可以将list的数据放到vector中使用std算法库的sort排序。

类似于长方形的性质可以用在正方形上,反之不行。

二、list的模拟实现

list的模拟实现重点在于list的迭代器实现,list的迭代器是个自定义类型

list的迭代器使用了三个模板参数

namespace List
{template<class T>struct list_node{list_node* _next;list_node* _prev;T _val;list_node(const T& val = T()):_next(nullptr),_prev(nullptr),_val(val){}};template<class T, class Ref, class Ptr>struct list_iterator{typedef list_node<T> Node;typedef list_iterator<T, Ref, Ptr> self;Node* _node;list_iterator(Node* node):_node(node){}Ref operator*(){return _node->_val;}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 it) const{return _node == it._node;}bool operator!=(const self it) const{return _node != it._node;}Ptr operator->(){return &_node->_val;}};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;list():_size(0){_head = new Node;_head->_next = _head;_head->_prev = _head;}list(size_t n, const T& val = T()){_head = new Node;_head->_next = _head;_head->_prev = _head;while (n--) {push_back(val);}}list(const list<T>& lt):_size(0){_head = new Node;_head->_next = _head;_head->_prev = _head;for (auto e : lt){push_back(e);}}~list(){clear();delete _head;_head = nullptr;}iterator begin(){return _head->_next;}iterator end(){return _head;}const_iterator begin() const{return _head->_next;}const_iterator end() const{return _head;}const_iterator cbegin() const{return _head->_next;}const_iterator cend() const{return _head;}iterator erase(iterator pos){assert(pos != _head);Node* prev = pos._node->_prev;Node* next = pos._node->_next;prev->_next = next;next->_prev = prev;_size--;delete pos._node;return next;}iterator insert(iterator pos, const T& x){Node* cur = pos._node;Node* prev = pos._node->_prev;Node* NewNode = new Node(x);cur->_prev = NewNode;prev->_next = NewNode;NewNode->_next = cur;NewNode->_prev = prev;NewNode->_val = x;_size++;return NewNode;}void push_back(const T& x){ //Node* tail = new Node;//tail->_val = x;//_head->_prev->_next = tail;//tail->_prev = _head->_prev;//_head->_prev = tail;//tail->_next = _head;//_size++;insert(end(), x);}void pop_back(){erase(_head->_prev);}void push_front(const T& x){insert(_head->_next, x);}void pop_front(){erase(_head->_next);}size_t size(){return _size;}void clear(){for (size_t i = _size; i > 0; --i){pop_back();}_size = 0;}void swap(list& lt){std::swap(_head, lt._head);std::swap(_size, lt._size);}private:Node* _head;size_t _size;};}

单参数的构造函数支持隐式类型的转化

->运算符重载  可以用于访问结构体成员变量的成员变量

严格来说,it->->_a1 这样写才符合语法要求;因为运算符重载要求可读性,所以编译器特殊处理,省略了一个->。

注意:

类模板在类里面写时,既可以写类名也可以写类型

http://www.dtcms.com/a/493510.html

相关文章:

  • 更新网站的步骤海口创建公司
  • 潍坊网站托管wordpress停用react
  • 携程网站票面价含机场建设费吗门店零售管理系统
  • 全国网站备案拍照wordpress+没有+sql
  • 网站建设宀金手指花总十五威海吧
  • 网站的设计需要什么.net网站开发用的书籍
  • 深圳尼高网站建设有人做彩票网站吗
  • 集团门户网站建设知名网站建设制作
  • 建筑招工网站顺德建设局网站
  • 在环评备案网站上做登记后会怎么样欧派家居全屋定制价格多少钱一平
  • 设计网站免费大全西充县建设路小学网站
  • 网站建设公司推荐万维科技网络服务平台有哪些
  • 襄阳网络公司 网站建设wordpress 万能搜索页
  • 银川专业做网站的公司青海西宁制作网站公司
  • 自己做网站要学前端和后端请拿笔记记下新域名
  • dedecms 网站栏目管理校园推广文案
  • django做网站怎样做爰免费视频网站
  • 个性化网站建设费用百度搜索广告价格
  • 营销型网站建设策划案泰安集团网站建设报价
  • 招聘网站开发的要求中国监理建设注册网站
  • 全国设计网站建设重庆建设工程信息查询
  • 服装网站建设优点有哪些珍爱网征婚免费下载
  • 利用小偷程序做网站快速提升网站权重
  • 找钟点工做的网站模仿网站
  • 网站建设400电话如何自己做网站腾讯
  • wordpress 图片站主题响应试企业网站
  • 找代码的网站百度移动端网站
  • 网站的优化通过什么做上去wordpress导航大全
  • 建设部网站的诚信平台装饰设计资质等级标准
  • 外贸网站建设排名优化员工