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

程序功能要求】

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

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

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

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

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

程序功能要求】

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

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

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

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

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

参考

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;
}