📅  最后修改于: 2023-12-03 15:28:45.232000             🧑  作者: Mango
本题将要求我们实现一个C++类,该类用于依次存储不同值类型的数据,并再次以该顺序输出。我们可以使用模板类,具体实现如下:
template <typename T>
class Storage {
private:
std::vector<T> items;
public:
void push(T item) {
items.push_back(item);
}
void print() {
for (T item : items) {
std::cout << item << " ";
}
std::cout << std::endl;
}
};
如上所示,我们使用一个vector
成员变量来存储push
函数中添加的值,并使用print
函数逐一打印输出。
为了支持自定义的数据类型,我们需要使用模板类。我们可以使用Storage<int>
指定存储整数,使用Storage<double>
来存储浮点数。还可以使用Storage<std::string>
指定字符串数据的存储方式。使用示例如下:
int main() {
Storage<int> intStorage;
Storage<double> doubleStorage;
Storage<std::string> stringStorage;
intStorage.push(1);
intStorage.push(2);
intStorage.push(3);
std::cout << "Int storage: ";
intStorage.print();
doubleStorage.push(1.23);
doubleStorage.push(2.34);
doubleStorage.push(3.45);
std::cout << "Double storage: ";
doubleStorage.print();
stringStorage.push("Hello,");
stringStorage.push("world!");
std::cout << "String storage: ";
stringStorage.print();
}
运行后,我们将得到以下输出:
Int storage: 1 2 3
Double storage: 1.23 2.34 3.45
String storage: Hello, world!
此外,我们还可以支持存储更高级的自定义数据类型,只需在类定义时指定存储类型即可:
class MyClass {
public:
int foo;
double bar;
};
Storage<MyClass> myClassStorage;
最终,我们得到一个可以动态存储任意类型数据并按顺序输出的类。