C++ 类模板实现通用动态数组类:存储任意类型对象,并提供访问、查找最大最小值功能
#include <iostream>
#include <algorithm>
using namespace std;
template <typename T>
class DynamicArray {
private:
T* data;
int size;
public:
DynamicArray(int s = 10) {
data = new T[s];
size = s;
}
~DynamicArray() {
delete[] data;
}
void resize(int s) {
T* newData = new T[s];
int minSize = min(s, size);
for (int i = 0; i < minSize; i++)
newData[i] = data[i];
delete[] data;
data = newData;
size = s;
}
T& operator[](int index) {
return data[index];
}
int getSize() {
return size;
}
T get(int index) {
return data[index];
}
void set(int index, T value) {
data[index] = value;
}
T getMax() {
T max = data[0];
for (int i = 1; i < size; i++) {
if (data[i] > max)
max = data[i];
}
return max;
}
T getMin() {
T min = data[0];
for (int i = 1; i < size; i++) {
if (data[i] < min)
min = data[i];
}
return min;
}
};
int main() {
DynamicArray<int> arr(5);
arr[0] = 1;
arr[1] = 3;
arr[2] = 2;
arr[3] = 5;
arr[4] = 4;
cout << 'Array size: ' << arr.getSize() << endl;
cout << 'Array[2]: ' << arr.get(2) << endl;
arr.set(2, 6);
cout << 'Array[2]: ' << arr.get(2) << endl;
cout << 'Array max: ' << arr.getMax() << endl;
cout << 'Array min: ' << arr.getMin() << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/nS04 著作权归作者所有。请勿转载和采集!