arrayList是一个数组类,有Telement一维数组,listsize表示数组元素大小,arraylength表示一维数组大小,用c++实现
时间: 2024-09-18 07:10:19 浏览: 6
ArrayList,通常在某些编程语言库中用于模拟动态数组的功能,但在C++中,标准库并没有提供直接类似于ArrayList的数据结构。不过,我们可以自定义一个类似的概念,比如使用`std::vector<T>`作为底层存储,它实际上就是一个动态数组,可以动态调整大小。以下是一个简单的自定义ArrayList的实现:
```cpp
template <typename T>
class ArrayList {
private:
std::vector<T> elements; // 一维动态数组存储元素
int listSize = 0; // 当前元素的数量
int arrayLength = 0; // 最大容量
public:
ArrayList(int initialCapacity = 10) : arrayLength(initialCapacity) {}
// 添加元素
void add(T element) {
if (listSize == arrayLength) {
resize(arrayLength * 2); // 如果满了,扩容两倍
}
elements[listSize++] = element;
}
// 获取元素
T get(int index) const {
if (index >= 0 && index < listSize) {
return elements[index];
} else {
throw std::out_of_range("Array out of bounds");
}
}
// 删除元素
void removeAt(int index) {
if (index >= 0 && index < listSize) {
for (int i = index; i < listSize - 1; ++i) {
elements[i] = elements[i + 1];
}
elements[--listSize] = T();
} else {
throw std::out_of_range("Array out of bounds");
}
}
// 其他方法如查找、判断是否包含等...
private:
// 扩容函数
void resize(int newLength) {
elements.resize(newLength);
arrayLength = newLength;
}
};
```