c++模板泛型类代码示例
时间: 2024-09-21 07:06:13 浏览: 45
C++中的类模板详解及示例
在C++中,模板是一种强大的工具,它允许我们编写通用的函数或类,可以处理不同类型的数据。下面是一个简单的模板泛型类`Vector`的例子,这个类可以存储任意类型的元素,并提供了一些基本操作:
```cpp
template <typename T>
class Vector {
public:
// 构造函数,初始化内部数组
Vector(size_t size = 0) : data(new T[size]) {}
// 类型推导,插入元素
void push_back(T value) {
data.push_back(value);
}
// 返回元素数量
size_t size() const {
return data.size();
}
// 通过索引访问和返回元素
T& operator[](size_t index) {
if (index >= data.size()) {
throw std::out_of_range("Index out of range");
}
return data[index];
}
private:
std::vector<T> data; // 存储元素的动态数组
};
// 使用示例
int main() {
Vector<int> intVector;
intVector.push_back(5);
intVector.push_back(10);
Vector<std::string> strVector;
strVector.push_back("Hello");
strVector.push_back("World");
std::cout << "Int vector size: " << intVector.size() << "\n";
std::cout << "String vector size: " << strVector.size() << "\n";
// 访问元素并打印
std::cout << "First element in int vector: " << intVector[0] << "\n";
std::cout << "First element in string vector: " << strVector[0] << "\n";
return 0;
}
```
在这个例子中,`T`是模板类型参数,代表任何类型。这使得`Vector`可以用于存储整数、字符串等各种数据类型。
阅读全文