#include <iostream>
template <typename T>
class MyArray {
private:
T* m_data;
int m_size;
public:
MyArray(int size) : m_data(new T[size]), m_size(size) {}
~MyArray() {
delete[] m_data;
}
void resize(int newSize) {
T* newData = new T[newSize];
for (int i = 0; i < std::min(m_size, newSize); i++) {
newData[i] = m_data[i];
}
delete[] m_data;
m_data = newData;
m_size = newSize;
}
T& operator[](int index) {
return m_data[index];
}
int size() const {
return m_size;
}
};
int main() {
MyArray<int> arr(5);
for (int i = 0; i < arr.size(); i++) {
arr[i] = i;
}
for (int i = 0; i < arr.size(); i++) {
std::cout << arr[i] << " ";
}
arr.resize(10);
for (int i = 0; i < arr.size(); i++) {
std::cout << arr[i] << " ";
}
return 0;
}
在這個自定義的Array類中,我們使用了new運算符進行內存分配,同時在析構函數中使用了delete[]運算符進行內存釋放。類中還有resize方法用于重新分配內存空間,并且重載了[]運算符以支持數組元素的訪問。在主函數中,我們展示了如何使用這個自定義的Array類。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。