/* (程式頭部注釋開始)
* 程式的版權和版本宣告部分
* 檔名稱:建立專門的陣列類處理有關陣列的操作
* 作 者: 薛廣晨
* 完成日期: 2012 年 05 月18 日
* 版 本 號: x1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:陣列是幾乎所支援的組織資料的方法。c和c++對陣列型別提供了內建支援,使我們利用陣列實現軟體中需要的各種實用的功能。但是,這種支援僅限於用來讀寫單個元素的機制。c++不支援陣列的抽象abstraction,也不支援對整個陣列的操作。例如:把乙個陣列賦值給另外乙個陣列,對兩個陣列進行相等比較或者想知道陣列的大小size,等等。對c++而言,陣列是從c語言中繼承來的,它反映了資料與對其進行操作的演算法的分離,有濃厚的過程化程式設計的特徵。陣列並不是c++語言的一等公民。所以在實際專案中,對乙個c++程式設計師,更多的是使用標準庫中提供的vector型別實現陣列功能。這個任務也將從物件導向角度重新審視和理解陣列,進而掃清自學vector等標準類中可能存在的障礙。在下面**的基礎上,完成支援陣列操作的類的設計,增強c++內建陣列型別功能。
在下面**的基礎上,完成支援陣列操作的類的設計,增強c++內建陣列型別功能。
* 程式頭部的注釋結束
*/#include using namespace std;
class myarray
;myarray::myarray(int sz)
else }
bool myarray::operator == (myarray& a) //過載==,使得array物件能整體判斷兩個陣列是否相等(size相等且對應元素相等)
return true;
} else return false;
}myarray myarray::operator + (myarray& a) //過載+,使兩個array物件可以整體相加(前提大小相等)【選做】
else
return my;
}
}ostream& operator << (ostream& out,myarray& a) //過載<
out << endl;
return out;
}int myarray::getsize(void)const //取陣列大小;
void myarray::resize(int sz) //修改陣列的大小,如果sz大於陣列的原大小,增加的元素初始為;sz小於陣列的原大小,捨棄後面的元素【選做】
else
arr = new int[sz];
for(i = 0;i < sz; ++i)
*(arr + i) = *(m + i);
size = sz;
}int main()
; int b[10]=;
myarray arr1(a,10);
myarray arr2(b,10);
myarray arr3(10);
cout << arr3;
arr3 = arr1 + arr2;
cout << arr3;
arr3.resize(20);
cout << arr3;
cout << arr3[5] << endl;
arr3.resize(5);
cout << arr3;
system("pause");
return 0;
}
上機感言:增強lc++內建陣列型別功能之後,對陣列操作就簡單了,很爽
第十四周任務(二)
建立自己的鍊錶 includeusing namespace std class student student next int num double score class mylist mylist int n,double s 以student n,s 作為單結點的鍊錶 int displa...
第十四周任務(二)
程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 建立專門的鍊錶類處理有關動態鍊錶的操作 作 者 齊豔紅 完成日期 2012 年 05 月 24 日 版 本 號 對任務及求解方法的描述部分 輸入描述 問題描述 動態鍊錶也是程式設計中的一種非常有用的資料結構。程式頭部的注釋結束 cpp view p...
第十四周專案一
煙台大學計算機學院 問題描述 認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查詢 3 在上述雜湊表中刪除關鍵字為77的元素,再顯示雜湊表。...