C++模板数组类三行输入
时间: 2023-09-16 15:10:01 浏览: 91
下面是一个简单的 C++ 模板数组类的实现,可以用三行输入来创建和初始化一个数组对象:
```c++
#include <iostream>
template <class T, int size>
class Array {
private:
T arr[size];
public:
void input() {
for (int i = 0; i < size; i++)
std::cin >> arr[i];
}
void output() {
for (int i = 0; i < size; i++)
std::cout << arr[i] << " ";
std::cout << std::endl;
}
};
int main() {
Array<int, 5> a;
std::cout << "Please input 5 integers:" << std::endl;
a.input();
std::cout << "The array is:";
a.output();
return 0;
}
```
在该示例中,我们使用了一个模板类 `Array`,它接受两个参数:`T` 表示元素类型,`size` 表示元素个数。在 `main` 函数中,我们创建了一个 `Array<int, 5>` 类型的对象 `a`,并要求用户输入 5 个整数,最后输出这个数组。
相关问题
C++模板数组类三行输入:第一行(1,2,3)确定数组类型;第二行int类型确定数组的下标,第三行确定数组元素的值
下面是一个根据输入确定数组类型、下标和元素值的 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`,并将元素值分割后逐一输入数组中。最后输出这个数组。
array(int n);其中n用来设置数组元素的个数 ~array(); int sizeOfArray();返回数组中元素的个数 void display()函数,输出数组元素,中间使用空格分隔。 void input()函数,可以通过键盘输入数组元素。 【输入形式】输入有3行,第1行输入模板数组类型,其中1代表建立整数数组类, 2代表建立double数组类,3代表char数组类; 第2行输入数组中元素的个数;第3行输入数组中各个元素.
好的,我已经明白您的问题了。根据您所描述的情况,我可以提供以下代码,供您参考和学习:
整数数组类:
```c++
#include <iostream>
using namespace std;
class IntArray {
private:
int* arr;
int size;
public:
IntArray(int n) {
arr = new int[n];
size = n;
}
~IntArray() {
delete[] arr;
}
int sizeOfArray() {
return size;
}
void display() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void input() {
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
};
int main() {
int type, n;
cin >> type >> n;
if (type == 1) {
IntArray arr(n);
arr.input();
arr.display();
}
return 0;
}
```
双精度数组类:
```c++
#include <iostream>
using namespace std;
class DoubleArray {
private:
double* arr;
int size;
public:
DoubleArray(int n) {
arr = new double[n];
size = n;
}
~DoubleArray() {
delete[] arr;
}
int sizeOfArray() {
return size;
}
void display() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void input() {
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
};
int main() {
int type, n;
cin >> type >> n;
if (type == 2) {
DoubleArray arr(n);
arr.input();
arr.display();
}
return 0;
}
```
字符数组类:
```c++
#include <iostream>
using namespace std;
class CharArray {
private:
char* arr;
int size;
public:
CharArray(int n) {
arr = new char[n];
size = n;
}
~CharArray() {
delete[] arr;
}
int sizeOfArray() {
return size;
}
void display() {
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void input() {
for (int i = 0; i < size; i++) {
cin >> arr[i];
}
}
};
int main() {
int type, n;
cin >> type >> n;
if (type == 3) {
CharArray arr(n);
arr.input();
arr.display();
}
return 0;
}
```
以上是三种不同类型的数组类的实现,您可以根据需要进行选择和修改。希望能对您有所帮助!
阅读全文