memcpy 结构体_数据结构 | 顺序存储线性表

点击蓝字

关注我们

近期公众号将推出数据结构系列文章,讲解线性表、栈、队列、二叉树、图、散列表等常用数据结构。相比课堂的理论教学,本系列文章会更侧重于代码实现,对理论不涉及或者仅做简要介绍。代码采用C++语言实现,利用C++提供的模板和类,将常用数据结构封装为用户易于使用的模板类,提供构造函数、常用操作接口等。对C++模板和面向对象编程不熟悉的读者也可借此学习相关知识。不过,文章侧重点仍然是数据结构,读者在类、模板等语法方面如有欠缺可自行补充。所有代码将上传GitHub(链接:https://github.com/UnpureRationalist/DataStructure 也可点击阅读原文查看),感兴趣读者可自行下载查看。如发现bug,还请留言以便本人更改。本篇文章讲解顺序存储线性表( 也叫向量)的实现和基本操作。类的私有数据成员以及需要的头文件如下:
#include #include #include using namespace std;template <class T>class ArrayList{
    private:    T *a = NULL;    int length;    int capacity;};
1、   构造函数1)构造空向量 
ArrayList()    {
            a = new T[10];        if (a == NULL)        {
                cerr << "Memory Error!\n";            exit(-1);        }        length = 0;        capacity = 10;    }
2)从已有数组构造 
ArrayList(T *p, int size)    {
            a = new T[size + 10];        if (a == NULL)        {
                cerr << "Memory Error!\n";            exit(-1);        }        length = size;        capacity = size + 10;        memcpy(a, p, sizeof(T) * size);    }
3)从已有向量构造
ArrayList(ArrayList &tempList)    {
            capacity = tempList.capacity;        length = tempList.length;        a = new T[capacity];        if (a == NULL)        {
                cerr << "Memory Erro
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值