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

海南省建设考试网站成品网站包含后台么

海南省建设考试网站,成品网站包含后台么,安装wordpress用什么,二环建设部网站1. 内存布局对比 (1) MSVC 的实现 cpp class _List_node {_List_node* _Next; // 指向下一个节点_List_node* _Prev; // 指向前一个节点_Value_type _Value; // 存储的数据 }; 特点: 每个节点包含两个指针和一个数据成员。 Debug 模式:可能添加迭代…

1. 内存布局对比

(1) MSVC 的实现

cpp

class _List_node {_List_node* _Next;  // 指向下一个节点_List_node* _Prev;  // 指向前一个节点_Value_type _Value; // 存储的数据
};
  • 特点

    • 每个节点包含两个指针和一个数据成员。

    • Debug 模式:可能添加迭代器校验字段(如 _Container_proxy)。

(2) GCC 的实现

cpp

struct _List_node {_List_node* _M_next;_List_node* _M_prev;_Tp _M_data;
};
  • 特点

    • 与 MSVC 类似,但字段命名不同。

    • 无 Debug 模式额外开销。


2. 迭代器设计

(1) 迭代器本质
  • std::list 的迭代器 不是指针,而是封装了节点指针的类(因为链表节点在内存中不连续)。

  • 支持双向移动(++--),但不支持随机访问(如 it + 5),因此是双向迭代器。

(2) MSVC 的迭代器

cpp

class _List_iterator {_List_node* _Ptr; // 指向当前节点// Debug 模式下可能包含校验信息
public:// 重载操作符(如 *、->、++ 等)
};
(3) GCC 的迭代器

cpp

struct _List_iterator {_List_node* _M_node;// 直接操作节点指针
};

1. std::list 的核心成员(MSVC vs GCC)

(1) MSVC 的实现

cpp

template<class _Ty, class _Alloc = allocator<_Ty>>
class list {
private:_Node _Myhead;          // 哨兵节点(双向链表的头尾环)size_t _Mysize;         // 当前元素数量_Alloc _Alnode;         // 节点分配器// Debug 模式下可能包含迭代器校验字段
};
  • 关键成员

    • _Myhead:哨兵节点(不存储数据),其 _Next 指向首个真实节点,_Prev 指向末尾节点。

    • _Mysize:缓存当前元素数量(使 size() 操作为 O(1))。

    • _Alnode:节点内存分配器(默认为 std::allocator)。

(2) GCC 的实现

cpp

template<typename _Tp, typename _Alloc = std::allocator<_Tp>>
class _List_base {
protected:_List_node_base _M_node; // 哨兵节点_Alloc _M_get_Node_allocator(); // 节点分配器
};template<typename _Tp, typename _Alloc = std::allocator<_Tp>>
class list : protected _List_base<_Tp, _Alloc> {size_t _M_size;         // 当前元素数量
};
  • 关键成员

    • _M_node:哨兵节点(类似 MSVC 的 _Myhead)。

    • _M_size:缓存元素数量(C++11 起标准要求 size() 为 O(1))。


3. 哨兵节点(Sentinel Node)的作用

  • 带头双向循环链表
    list 的内部实现是一个带哨兵节点的双向循环链表,其成员关系如下:

    [哨兵] <-→ [节点1] <-→ [节点2] <-→ ... <-→ [哨兵]
  • 优势

    • begin() = 哨兵的 _Nextend() = 哨兵自身。

    • 插入/删除操作无需特殊处理头尾边界。

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

相关文章:

  • php网站 更改logo唐山网站专业制作
  • Flutter版本管理工具FVM
  • 网站开发购物店12345汽车网址大全
  • 中山市 做网站运营一个企业网站的推广方案
  • 空包网站建设属于哪类wordpress调用函数大全
  • 网站做视频的软件叫什么wrix 网站开发
  • 网站一键制作整改网站建设情况
  • 做网站推销产品效果怎么样直播间网站建设
  • 单页网站订单系统怎么改邮箱wordpress怎么添加留言板
  • 个人博客网站的建设结构图如何推广企业官方网站内容
  • 微博营销网站二级建造师报考条件2021考试时间
  • reason: unable to verify the first certificate 如何处理
  • 建设公司网站需要什么销售app哪个好用
  • 品牌网站策划描述网站开发的流程
  • 网站二级域名如何设置校园网站建设说明书
  • 营销型网站建设总结网站页面模板 建设中
  • 移动互联时代网站建设php网站空间购买
  • 哈尔滨大型网站制作网站的备案all
  • 网网站建设与制作手机有办法做网站吗
  • 济宁专业建网站西安网站建设案例
  • 集团微网站建设wordpress定义页面带html
  • 网站设计制作wordpress 数据库
  • 建设企业网站电话是多少创意响应式网站建设
  • 360 的网站链接怎么做携程旅行的网站建设
  • 南平做网站建设网站门户
  • 身份证--困惑
  • 小程序app开发seo0577
  • app开发人员网站怎么查到网站是谁做的
  • 西安网站制作首页2017做那些网站致富
  • seo网站优化推广费用遵义做网站多少钱