怎么自定义一个vector 啊
使用类模版
有pushback 函数
【以下回答由 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)。
【相关推荐】