【数据结构】向量(Vector)C++实现

本文详细介绍了如何在C++中实现数据结构中的向量(Vector),包括具体的实现代码、测试代码及其运行结果。通过实例展示了向量的增删查改操作及其效率。
摘要由CSDN通过智能技术生成

实现代码

/*
vector.h
*/
#include <stdlib.h>
typedef int Rank;  //秩。  向量中的秩类似于数组中的下标
template <typename T> class Vector{
   
protected:
    Rank _size; //向量大小
    int _capacity;  //向量最大容量
    T* elem;    //数据区
    //功能函数
    void shrink();  //减小容量
    void expand();  //增大容量
public:
    //构造函数
    Vector(int s ,T v);      //创建一个大小为s,初值全为v的向量
    Vector(T const* a,Rank n);  //由数组构建向量
    //析构函数
    ~Vector();

    //操作接口

    Rank size() const;  //获取大小
    bool isOrdered() const; //判断是否有序
    T& operator[](Rank r) const;    //重载[],实现按秩访问
    T& operator=(Vector<T> const& v);   //重载=,方便克隆
    Rank insert(Rank n, T const& e);    //指定位置插入
    Rank append(T const& e);    //作为最后一个元素插入
    T remove(Rank r);   //删除秩为r的元素
    void clear();   //清空  
    Rank search(T const& e) const;  //查找给定对象
    Rank binarySearch(T const& e) const;       //有序向量二分查找
    void sort();    //排序
    void unsort();  //打乱
    void copyFrom(Vector<T> const& V,Rank low, Rank high); //克隆V中[low,high)区间的元素
    int deduplicate();  //去除重复元素
    void traverse(void (*)(T&));    //遍历
};
//构造函数
template <typename T> 
Vector<T>::Vector(Rank s,T v ){
   
    _size=_capacity=s;
     elem=new T[s];
     for(int i=0;i<_size;i++)
        elem[i]=v;
}
template <typename T> Vector<T>::Vector(T const* a,Rank n){
   
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值