Vector和List的实现

##Vector和List基本操作的实现 ##
####前言 ##
基于STL,实现Vector和List的一般功能。
Vector底层实现为:顺序表
List底层实现为:带头节点的双向循环链表(优点:增删速度快,时间复杂度为O(1))

####<一>基本功能 ##

  • 构造函数
  • 拷贝构造函数
  • 赋值运算符重载
  • 析构函数
  • 尾插
  • 尾删
  • 头插
  • 头删
  • 插入
  • 删除
  • 查找

####<二>实现代码 ##

####小结 ##

  • 在实现Vector时,需注意以下几点:

    1.在赋值运算符重载函数中,为避免新空间开辟失败。故,在开辟空间之后再释放之前_first的空间。
    2.memcpy(void *dest,void *src,size_t n);其中n表示的是所拷贝的空间字节数。
    3.两个不同类型的变量进行比较时,需注意有没有类型提升带来的隐患。如:insert()函数中的i变量与pos变量。

  • 在实现List函数时,需注意以下几点:

1.在构造List时,头节点的数据不具有任何意义,故可以用一个匿名对象初始化_head;
2.在拷贝构造函数中,切记:插入元素之前,必须先构造一个循环空链表;
3.在插入类函数中,可定义一个变量保存待插入节点前一个节点/后一个节点,增强代码可读性和可修改性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值