C++模板数组类三行输入:第一行(1,2,3)确定数组类型;第二行int类型确定数组的下标,第三行确定数组元素的值
时间: 2023-12-05 16:03:49 浏览: 60
下面是一个根据输入确定数组类型、下标和元素值的 C++ 模板数组类的实现,可以用三行输入来创建和初始化一个数组对象:
```c++
#include <iostream>
template <typename T>
class Array {
private:
T* arr;
public:
Array(int size) {
arr = new T[size];
}
void input(int index, T value) {
arr[index] = value;
}
void output() {
for (int i = 0; i < sizeof(arr)/sizeof(T); i++)
std::cout << arr[i] << " ";
std::cout << std::endl;
}
};
int main() {
std::string type;
int index;
std::string values;
std::cout << "Please input the type of the array: ";
std::cin >> type;
std::cout << "Please input the index of the array: ";
std::cin >> index;
std::cout << "Please input the values of the array: ";
std::cin >> values;
Array<std::string>* a = new Array<std::string>(index);
std::string delimiter = ",";
size_t pos = 0;
std::string token;
int i = 0;
while ((pos = values.find(delimiter)) != std::string::npos) {
token = values.substr(0, pos);
a->input(i, token);
values.erase(0, pos + delimiter.length());
i++;
}
a->input(i, values);
std::cout << "The array is: ";
a->output();
delete a;
return 0;
}
```
在该示例中,我们使用了一个模板类 `Array`,它接受一个参数 `T` 表示元素类型。在 `main` 函数中,我们首先要求用户输入数组类型 `type`,下标 `index` 和元素值 `values`,然后根据输入创建一个 `Array<std::string>` 类型的对象 `a`,并将元素值分割后逐一输入数组中。最后输出这个数组。
阅读全文