这里需要对于创建一个里面包含不同变量指针的Vector,如何针对这个定义模板
时间: 2024-10-24 11:17:42 浏览: 15
在C++中,你可以定义一个模板来创建一个动态数组(类似于vector),这个数组可以存储指向不同类型变量的指针。以下是一个简单的模板示例:
```cpp
#include <iostream>
#include <vector>
// 定义一个通用的指针容器模板
template <typename T>
class PointerVector {
public:
PointerVector() {}
// 添加元素
void addElement(T* ptr) {
elements.push_back(ptr);
}
// 显示所有元素
void display() {
for (T* ptr : elements) {
std::cout << *ptr << " ";
}
std::cout << "\n";
}
private:
std::vector<T*> elements;
};
int main() {
// 使用模板实例化,分别存储整型和字符串指针
PointerVector<int> intVector;
PointerVector<std::string> stringVector;
// 添加元素
int* intPtr = new int(42);
stringVector.addElement(new std::string("Hello"));
// 显示元素
intVector.addElement(intPtr); // 注意这里不需要模板,因为已知元素类型
intVector.display(); // 输出:42
stringVector.display(); // 输出:Hello
// 清理内存
delete intPtr;
delete stringVector.back();
return 0;
}
阅读全文