您好,登錄后才能下訂單哦!
#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;
}
在這個(gè)自定義的Array類中,我們使用了new運(yùn)算符進(jìn)行內(nèi)存分配,同時(shí)在析構(gòu)函數(shù)中使用了delete[]運(yùn)算符進(jìn)行內(nèi)存釋放。類中還有resize方法用于重新分配內(nèi)存空間,并且重載了[]運(yùn)算符以支持?jǐn)?shù)組元素的訪問(wèn)。在主函數(shù)中,我們展示了如何使用這個(gè)自定義的Array類。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。