首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C++中实现泛型向量类

在C++中实现泛型向量类可以通过使用模板来实现。模板是C++中的一种特殊机制,可以实现通用的代码,使得代码可以适用于不同的数据类型。

泛型向量类是一个可以存储任意类型元素的动态数组。它可以动态调整大小,并提供了一系列的操作方法,如添加元素、删除元素、访问元素等。

以下是一个示例的泛型向量类的实现:

代码语言:txt
复制
template <typename T>
class Vector {
private:
    T* data;        // 存储元素的数组
    int size;       // 当前元素个数
    int capacity;   // 数组容量

public:
    // 构造函数
    Vector() {
        size = 0;
        capacity = 10;
        data = new T[capacity];
    }

    // 析构函数
    ~Vector() {
        delete[] data;
    }

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

    // 删除元素
    void pop_back() {
        if (size > 0) {
            size--;
        }
    }

    // 获取元素个数
    int getSize() const {
        return size;
    }

    // 获取指定位置的元素
    T& operator[](int index) {
        return data[index];
    }
};

这个泛型向量类使用了模板参数 typename T,表示可以接受任意类型的数据。在类的内部,使用 T* data 来存储元素的数组,int size 来记录当前元素个数,int capacity 来记录数组容量。

类中提供了一些常用的操作方法,如 push_back 用于添加元素,pop_back 用于删除元素,getSize 用于获取元素个数,operator[] 用于访问指定位置的元素。

使用示例:

代码语言:txt
复制
int main() {
    Vector<int> vec;  // 创建一个存储整数的向量

    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (int i = 0; i < vec.getSize(); i++) {
        cout << vec[i] << " ";
    }
    // 输出:1 2 3

    vec.pop_back();

    cout << vec.getSize() << endl;
    // 输出:2

    return 0;
}

这个示例展示了如何使用泛型向量类来存储整数,并进行一些基本操作。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为示例,实际选择云计算品牌商和产品应根据具体需求和实际情况进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券