数据结构之向量的接口与实现(c++版)

1.前言

下面来看看数据结构中最基础的向量的接口与实现
向量与数组类似,是一种线性数据结构,最基本的遍历向量的方式是寻秩访问秩即向量每个元素的序号
下面我们用c++的语法定义向量的接口,并依次实现。在这里为了方便小白来看,我定义了只能装整数的向量。为了提高兼容性,可以参考范型程序设计的方法
例如:

template <typename T>
class Vector{
   }

通过这种方式,向量内的元素可以是整数、浮点数,也可以是类、数组等

2.向量接口定义

#ifndef VECTOR_VECTOR_H
#define VECTOR_VECTOR_H

class Vector{
   
private:
    int _size;           //向量元素个数
    int _capacity;       //向量容量
    int *_elem;          //指向元素的指针
public:
    Vector(int v = 10)           //构造函数,默认初始元素个数为10
    {
   _elem = new int[_capacity = v]; _size = 0;};
    ~Vector()                    //析构函数
    {
    delete _elem; };
    Vector(Vector const &v);         //复制构造函数
    //针对一般向量的函数接口
    int size();                      //报告向量元素规模
    int get(int r);                  //获取序号为r的元素
    void put(int r, int e);          //用e替换r元素
    void expand();                   //扩充向量规模
    void insert(int r, int e);       //插入e元素,后继元素依此后移
    int remove(int r);               //删除序号为r的元素并返回
    int remove(int lo, int hi);      //区间删除,返回删除的区间长度
    int find(int e, int lo, int hi); //查找元素e,返回序号
    void deduplicated();             //删除重复元素
    int & operator[](int r);         //重载下标运算符
    void bubblesort(int lo, int hi);               //向量元素冒泡排序
    void mergesort(int lo, int hi);                //向量元素归并排序
    void merge(int lo, int mi, int hi);
    //针对有序向量的函数接口
    int disordered() const;          //判断向量是否有序
    int uniquify();                  //有序向量去重,返回重复元素的个数
    int binsearch(int *s, int const &e, int lo
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值