零九号 2023-06-24 11:00 采纳率: 60%
浏览 15

Vector类实现数组动态分配的问题

这是题目以及输入输出大概要求
第三题:

img

img

我想问的是,通过add方式动态分配,是不是在里面一直new一个数组比原来长度多一,然后通过复制两个数组实现,但是我的代码跑出来一直没东西
:我的代码如下


#ifndef VECTOR_H
#define VECTOR_H 
#include<iostream>
#include<vector>
using namespace std;

template <class T>
class Vector
{
    public:
        Vector()
        {
            lenth=0;
        }
        ~Vector()
        {
            delete []date;
        }
        T& operator [](int i)//重载运算符[] 
        {
            return date[i];
        }
        
        T add(T i);
        int remove(T j);
        
        int get_size()
        {
            return lenth;
        }
    private:
        T* date;
        int lenth;
};

template<class T> T Vector<T>::add(T i) //添加元素 
{
    int num;
    num=(lenth==0)?1:lenth*2;//动态分配内存 当数组空时,动态分配一个;数组不为空时,为了复制拼接 长度变大
    vector <T>newdate(num);
    for(int j=0;j<num;j++)
    newdate[j]=date[j];
    newdate[lenth]=i;
    lenth=lenth+1;
    delete[] date;
    date=newdate;
    return date[lenth-1]; 
}

template<class T> int Vector<T>::remove(T j)//删除元素 
{
    if(j>lenth||j<0)
    return 1;
    for(int i=j;i<lenth;i++)
    date[i]=date[i+1];
    lenth=lenth-1;
}
#endif

求解决题目的代码答案

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-24 12:04
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 6月24日

悬赏问题

  • ¥30 codelite全屏时file、setting那一行消失了
  • ¥15 gazebo-rviz教程
  • ¥15 付费求做一个自助抢单插件
  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器