使用类模板 (1) 实现一个管理 int 类型数据的类:类名 Mint,实现类的定义及相关功能代码; (2) 实现一个管理 float 类型数据的类:类名 Mfloat,实现类的定义及相关功能代码,与 Mint 类相比较,额外的公有性质的接口包含可以获取所管理的 float 类型数据的整数部 分的接口和小数部分的接口; (3) 实现一个管理复数类型数据的类(复数的实部用 real 表示,虚部用 img 表示):类名 Mcomplex,实现类的定义及相关功能代码;
时间: 2024-03-27 18:40:45 浏览: 58
C++堆栈类模板实现代码
5星 · 资源好评率100%
(1) Mint 类的定义及相关功能代码:
```cpp
template<typename T>
class Mint {
private:
std::vector<T> data; // 存储 int 数据的容器
public:
Mint() {} // 默认构造函数
Mint(std::initializer_list<T> ilist) : data(ilist) {} // 列表初始化构造函数
~Mint() {} // 析构函数
void push_back(const T& val) { data.push_back(val); } // 添加数据的函数
void pop_back() { data.pop_back(); } // 弹出末尾数据的函数
void clear() { data.clear(); } // 清空数据的函数
bool empty() const { return data.empty(); } // 判断是否为空的函数
int size() const { return data.size(); } // 返回数据数量的函数
T& operator[](int i) { return data[i]; } // 下标访问操作符重载
const T& operator[](int i) const { return data[i]; } // 下标访问操作符重载(const 版本)
void print() const { // 打印数据的函数
for (const T& val : data) {
std::cout << val << " ";
}
std::cout << std::endl;
}
};
```
(2) Mfloat 类的定义及相关功能代码:
```cpp
template<typename T>
class Mfloat {
private:
std::vector<T> data; // 存储 float 数据的容器
public:
Mfloat() {} // 默认构造函数
Mfloat(std::initializer_list<T> ilist) : data(ilist) {} // 列表初始化构造函数
~Mfloat() {} // 析构函数
void push_back(const T& val) { data.push_back(val); } // 添加数据的函数
void pop_back() { data.pop_back(); } // 弹出末尾数据的函数
void clear() { data.clear(); } // 清空数据的函数
bool empty() const { return data.empty(); } // 判断是否为空的函数
int size() const { return data.size(); } // 返回数据数量的函数
T& operator[](int i) { return data[i]; } // 下标访问操作符重载
const T& operator[](int i) const { return data[i]; } // 下标访问操作符重载(const 版本)
void print() const { // 打印数据的函数
for (const T& val : data) {
std::cout << val << " ";
}
std::cout << std::endl;
}
int get_int_part(int i) const { // 获取数据的整数部分
return static_cast<int>(data[i]);
}
float get_decimal_part(int i) const { // 获取数据的小数部分
return data[i] - static_cast<int>(data[i]);
}
};
```
(3) Mcomplex 类的定义及相关功能代码:
```cpp
template<typename T>
class Mcomplex {
private:
std::vector<std::complex<T>> data; // 存储复数数据的容器
public:
Mcomplex() {} // 默认构造函数
Mcomplex(std::initializer_list<std::complex<T>> ilist) : data(ilist) {} // 列表初始化构造函数
~Mcomplex() {} // 析构函数
void push_back(const std::complex<T>& val) { data.push_back(val); } // 添加数据的函数
void pop_back() { data.pop_back(); } // 弹出末尾数据的函数
void clear() { data.clear(); } // 清空数据的函数
bool empty() const { return data.empty(); } // 判断是否为空的函数
int size() const { return data.size(); } // 返回数据数量的函数
std::complex<T>& operator[](int i) { return data[i]; } // 下标访问操作符重载
const std::complex<T>& operator[](int i) const { return data[i]; } // 下标访问操作符重载(const 版本)
void print() const { // 打印数据的函数
for (const std::complex<T>& val : data) {
std::cout << val << " ";
}
std::cout << std::endl;
}
};
```
阅读全文