使用C++模板可以实现整型、字符串、浮点型和date对象的数组。模板是C++中的一种泛型编程技术,可以根据不同的数据类型生成相应的代码。
下面是使用C++模板实现整型、字符串、浮点型和date对象的数组的示例代码:
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
template <typename T>
class Array {
public:
Array(int size) : size(size) {
data.resize(size);
}
void set(int index, T value) {
if (index >= 0 && index < size) {
data[index] = value;
}
}
T get(int index) {
if (index >= 0 && index < size) {
return data[index];
}
return T();
}
private:
int size;
std::vector<T> data;
};
int main() {
Array<int> intArray(5);
intArray.set(0, 1);
intArray.set(1, 2);
intArray.set(2, 3);
intArray.set(3, 4);
intArray.set(4, 5);
std::cout << "Int Array: ";
for (int i = 0; i < 5; i++) {
std::cout << intArray.get(i) << " ";
}
std::cout << std::endl;
Array<std::string> stringArray(3);
stringArray.set(0, "Hello");
stringArray.set(1, "World");
stringArray.set(2, "!");
std::cout << "String Array: ";
for (int i = 0; i < 3; i++) {
std::cout << stringArray.get(i) << " ";
}
std::cout << std::endl;
Array<float> floatArray(4);
floatArray.set(0, 1.1f);
floatArray.set(1, 2.2f);
floatArray.set(2, 3.3f);
floatArray.set(3, 4.4f);
std::cout << "Float Array: ";
for (int i = 0; i < 4; i++) {
std::cout << floatArray.get(i) << " ";
}
std::cout << std::endl;
Array<tm> dateArray(2);
time_t now = time(0);
tm* timeinfo = localtime(&now);
dateArray.set(0, *timeinfo);
dateArray.set(1, *timeinfo);
std::cout << "Date Array: ";
for (int i = 0; i < 2; i++) {
std::cout << asctime(&dateArray.get(i));
}
std::cout << std::endl;
return 0;
}
这段代码定义了一个模板类Array
,通过模板参数T
来表示数组中的元素类型。在Array
类中,使用std::vector
来存储数据,并提供了set
和get
方法来设置和获取数组中的元素。
在main
函数中,我们分别创建了整型、字符串、浮点型和date对象的数组实例,并使用set
方法设置数组中的元素,然后使用get
方法获取并输出数组中的元素。
注意:为了简化示例代码,没有进行错误处理和异常处理。
这个示例中没有提及腾讯云相关产品和产品介绍链接地址,因为这些内容与使用C++模板实现数组的问题无关。如果您有其他关于云计算、IT互联网领域的问题,我会很乐意为您解答。
领取专属 10元无门槛券
手把手带您无忧上云