自定义vector 容器

怎么自定义一个vector 啊
使用类模版
有pushback 函数

http://t.csdn.cn/SnT1o

【以下回答由 GPT 生成】

首先,我们需要定义一个模板类,该类将作为我们自定义的容器。我们可以将容器命名为MyVector。

template <typename T>
class MyVector {
private:
    T* data; // 数据数组
    int capacity; // 容量
    int size; // 当前大小

public:
    MyVector(): capacity(10), size(0) {
        data = new T[capacity];
    }

    // 添加元素
    void push_back(T element) {
        if (size == capacity) {
            // 如果容量不够,扩展容量
            T* newData = new T[2 * capacity];
            for (int i = 0; i < size; i++) {
                newData[i] = data[i];
            }
            delete[] data;
            data = newData;
            capacity *= 2;
        }

        data[size++] = element; // 将新元素添加到末尾
    }

    // 获取元素
    T at(int index) {
        if (index < 0 || index >= size) {
            throw std::out_of_range("Index out of range");
        }

        return data[index];
    }

    // 获取容器大小
    int getSize() {
        return size;
    }
};

以上是一个简单的类模板,用于创建类似于vector的容器。这个容器拥有push_back函数,用于添加元素。同时,我们还实现了at函数用于获取指定位置的元素,getSize函数用于获取容器的大小。

以下是一个使用这个自定义容器的示例:

int main() {
    MyVector<int> vec; // 创建一个容器

    // 添加元素
    vec.push_back(10);
    vec.push_back(20);
    vec.push_back(30);

    // 获取元素并输出
    for (int i = 0; i < vec.getSize(); i++) {
        std::cout << vec.at(i) << " ";
    }

    return 0;
}

这段代码创建了一个MyVector容器,向容器中添加了三个整数元素,并且使用at函数获取并输出了容器中的值。

请注意,由于这段代码是使用C++编写的,因此你需要在编译器中正确设置C++编译环境,并包含必要的头文件(例如iostream和stdexcept)。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^