c++类模板通用指针数组
时间: 2023-10-26 19:15:23 浏览: 128
C++ 中的类模板通用指针数组是一种可以存储任意类型对象的数组,它使用模板技术实现了通用性。该数组可以存储任意类型的指针,包括基本数据类型、自定义类类型等。通用指针数组在实现数据结构和算法时非常有用。
使用类模板通用指针数组时,需要定义一个模板类,该类包含一个指针数组和相关的操作函数,如添加元素、删除元素、获取元素等。在使用时,需要指定数组元素类型,即实例化该模板类。例如,可以定义一个通用指针数组类模板如下:
```
template<typename T>
class PointerArray {
private:
T** array;
int size;
public:
PointerArray(int size) {
this->size = size;
array = new T*[size];
}
~PointerArray() {
for(int i = 0; i < size; i++) {
delete array[i];
}
delete[] array;
}
void add(T* value) {
for(int i = 0; i < size; i++) {
if(array[i] == NULL) {
array[i] = value;
break;
}
}
}
void remove(T* value) {
for(int i = 0; i < size; i++) {
if(array[i] == value) {
array[i] = NULL;
break;
}
}
}
T* get(int index) {
if(index < 0 || index >= size) {
return NULL;
}
return array[index];
}
};
```
在实例化该模板类时,可以指定数组元素类型,例如:
```
PointerArray<int> intArray(10);
PointerArray<string> stringArray(20);
```
这样就可以创建一个可以存储 int 类型和 string 类型对象的通用指针数组。在使用时,可以调用该类的添加、删除、获取元素等函数。例如,可以添加一个 int 类型的指针到 intArray 中:
```
int* p = new int(5);
intArray.add(p);
```
也可以获取 intArray 中的某个元素:
```
int* p = intArray.get(0);
```
总之,类模板通用指针数组是一种非常灵活的数据结构,可以存储任意类型的对象,具有广泛的应用价值。
阅读全文