关于C++数据结构顺序表的问题,急!

我只想实现一个可以输入所有函数,和输出所有函数的线性表,求大神纠错,感激不尽!!!

你的构造函数有问题,你定义了一个带参数的构造函数,可是你又使用的是不带参数构造函数的版本,数组并没有初始化.仔细一看,问题很多啊

//不应该使用类类型的指针list *data,这样一来你的[],-,=这些都要重载,而且逻辑也不对

#include <iostream>
#include <cstring>
using namespace std;
class Vector {
private:
    int size, length;
    int *data;
public:
    Vector(int input_size) {
        size = input_size;
        length = 0;
        data = new int[size];
    }
    ~Vector() {
        delete[] data;
    }
    bool insert(int loc, int value) {
        if (loc < 0 || loc > length) {
            return false;
        }
        if (length >= size) {
            return false;
        }
        for (int i = length; i > loc; --i) {
            data[i] = data[i - 1];
        }
        data[loc] = value;
        length++;
        return true;
    }
    int search(int value) {
        for (int i = 0; i < length; ++i) {
            if (data[i] == value) {
                return i;
            }
        }
        return -1;
    }
    bool remove(int index) {
        if (index < 0 || index >= length) {
            return false;
        }
        for (int i = index + 1; i < length; ++i) {
            data[i - 1] = data[i];
        }
        length = length - 1;
        return true;
    }
    void print() {
        for(int i=0;i<length;i++){
            if(i>0){
                cout<<" ";
            }
            cout<<data[i];
        }
        cout<<endl;
    }
};
int main() {
    Vector a(2);
    cout << a.insert(0, 1) << endl;
    cout << a.insert(0, 2) << endl;
    a.print();
    cout << a.remove(1) << endl;
    a.print();
    cout << a.search(0) << endl;
    cout << a.search(1) << endl;
    return 0;
}

追问

谢谢,我会好好看的

温馨提示:答案为网友推荐,仅供参考
相似回答