m0_68766350 2022-06-04 23:50 采纳率: 100%
浏览 47
已结题

如果有一天,我悄然头秃,请把我…

程序功能要求】

  1. FVector中的元素采用普通数组存储(数组长度为一个足够大的常量M)

  2. 追加一个元素,返回元素个数,查找某个元素。

  3. (选做)删除某个元素。

  4. (选做)重载operator[], 返回值为对应位置的元素

  1. 编写主函数,测试功能。

程序功能要求】

  1. FVector中的元素采用普通数组存储(数组长度为一个足够大的常量M)

  2. 追加一个元素,返回元素个数,查找某个元素。

  3. (选做)删除某个元素。

  4. (选做)重载operator[], 返回值为对应位置的元素

  1. 编写主函数,测试功能。
    99了,真的整吐了,写不出来
  • 写回答

1条回答 默认 最新

  • 天际的海浪 2022-06-05 01:14
    关注

    参考

    img

    #include <iostream>
    using namespace std;
    #define M 1000
    class FVector
    {
    public:
        FVector()
        {
            size = 0;
            maxsize = M;
            v = new int[maxsize];
        }
        int & operator[](int i)
        {
            if (i<0 || i >= maxsize)
                  throw "传入的下标值非法";      // 抛出一个异常,传入的下标值非法了。
            if (i >= size)
                size=i+1;
            return v[i];
        }
        int push(int x)
        {
            if (size >= maxsize)
                return -1;
            v[size++] = x;
            return size;
        }
        int search(int x)
        {
            for (int i = 0; i < size; i++)
            {
                if (v[i]==x)
                {
                    return i;
                }
            }
            return -1;
        }
    
        int del(int i)
        {
            if (i<0 || i>=size)
                return -1;
            for (int j = i; j < size-1; j++)
            {
                v[j] = v[j+1];
            }
            size--;
            return size;
        }
    
        int getsize()
        {
            return size;
        }
    
        ~FVector()
        {
            delete[] v;
            size = 0;
        }
    private:
        int *v;
        int size;
        int maxsize;
    };
    
    
    int main()
    {
        FVector a;
        for (int i = 0; i <=4; i++)
        {
            a[i] = i * 2;
        }
        a.push(55);
        for (int i = 0; i < a.getsize(); i++)
            cout << "a["<<i<<"] = " << a[i] << endl;
    
        cout << "查找6的下标为" << a.search(6) << endl;
        a.del(2);
    
        for (int i = 0; i < a.getsize(); i++)
            cout << "a["<<i<<"] = " << a[i] << endl;
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月4日

悬赏问题

  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)