freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第九章群體類和群體數(shù)據(jù)的組織-文庫吧

2025-07-05 18:05 本頁面


【正文】 Error(memoryAllocationError)。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 20 數(shù)組類的拷貝構(gòu)造函數(shù) template class T ArrayT::Array(const ArrayTamp。 X) { int n=。 size=n。 alist=new T[n]。 if (alist==NULL) Error(memoryAllocationError)。 T* srcptr=。// X的數(shù)組首地址 T* destptr=alist。 // alist是本對(duì)象中的數(shù)組首地址 while(n) // 逐個(gè)復(fù)制數(shù)組元素 *destptr++ = *srcptr++。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 21 淺拷貝 alist size A A的數(shù)組元素 占用的內(nèi)存 拷貝前 alist size A A的數(shù)組元素 占用的內(nèi)存 拷貝后 alist size B int main() { Arrayint A(10)。 ...... Arrayint B(A)。 ...... } template class T ArrayT::Array( const ArrayTamp。 X) { size = 。 alist= 。 } C++語言程序設(shè)計(jì) 22 深拷貝 alist size A A的數(shù)組元素 占用的內(nèi)存 拷貝前 alist size A A的數(shù)組元素 占用的內(nèi)存 拷貝后 alist size B B的數(shù)組元素 占用的內(nèi)存 C++語言程序設(shè)計(jì) 23 數(shù)組類的重載 =運(yùn)算符函數(shù) template class T ArrayTamp。 ArrayT::operator=(const ArrayTamp。 rhs) { int n = 。 if (size != n) { delete [] alist。 alist = new T[n]。 if (alist == NULL) Error(memoryAllocationError)。 size = n。 } T* destptr = alist。 T* srcptr = 。 while (n) *destptr++ = *srcptr++。 return *this。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 24 數(shù)組類的重載下標(biāo)操作符函數(shù) template class T Tamp。 ArrayT::operator[] (int n) { // 檢查下標(biāo)是否越界 if (n 0 || n size1) Error(indexOutOfRange,n)。 // 返回下標(biāo)為 n的數(shù)組元素 return alist[n]。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 25 為什么有的函數(shù)返回引用 ? 如果一個(gè)函數(shù)的返回值是一個(gè)對(duì)象的值,它就被認(rèn)為是一個(gè)常量,不能成為左值。 ? 如果返回值為引用。由于引用是對(duì)象的別名,所以通過引用當(dāng)然可以改變對(duì)象的值。 直接訪問的線性群體 C++語言程序設(shè)計(jì) 26 重載指針轉(zhuǎn)換操作符 template class T ArrayT::operator T* (void) const { //返回當(dāng)前對(duì)象中私有數(shù)組的首地址 return alist。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 27 指針轉(zhuǎn)換運(yùn)算符的作用 include iostream using namespace std。 int main() { int a[10]。 void read(int *p, int n)。 read(a, 10)。 } void read(int *p, int n) { for (int i=0。 in。 i++) cinp[i]。 } int main() { Arrayint a(10)。 void read(int *p, n)。 read(a, 10)。 } void read(int *p, int n) { for (int i=0。 in。 i++) cinp[i]。 } 直接訪問的線性群體 C++語言程序設(shè)計(jì) 28 Array類的應(yīng)用 ? 例 94求范圍 2~N中的質(zhì)數(shù), N在程序運(yùn)行時(shí)由鍵盤輸入。 直接訪問的線性群體 include iostream include iomanip include using namespace std。 int main() { Arrayint A(10)。 int n。 int primecount = 0, i, j。 cout Enter a value = 2 as upper limit for prime numbers: 。 cin n。 A[primecount++] = 2。 // 2是一個(gè)質(zhì)數(shù) for(i = 3。 i n。 i++) { if (primecount == ()) (primecount + 10)。 if (i % 2 == 0) continue。 j = 3。 while (j = i/2 amp。amp。 i % j != 0) j += 2。 if (j i/2) A[primecount++] = i。 } for (i = 0。 i primecount。 i++) { cout setw(5) A[i]。 if ((i+1) % 10 == 0) cout endl。 } cout endl。 } 29 C++語言程序設(shè)計(jì) 30 鏈表 ? 鏈表是一種動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),可以用來表示順序訪問的線性群體。 ? 鏈表是由系列 結(jié)點(diǎn) 組成的,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。 ? 每一個(gè)結(jié)點(diǎn)包括 數(shù)據(jù)域 和指向鏈表中下一個(gè)結(jié)點(diǎn)的 指針 (即下一個(gè)結(jié)點(diǎn)的地址)。如果鏈表每個(gè)結(jié)點(diǎn)中只有一個(gè)指向后繼結(jié)點(diǎn)的指針,則該鏈表稱為單鏈表。 順序訪問的線性群體 C++語言程序設(shè)計(jì) 31 單鏈表 data1 data2 data3 datan NULL … head rear 順序訪問的線性群體 C++語言程序設(shè)計(jì) 32 單鏈表的結(jié)點(diǎn)類模板 template class T class Node { private: NodeT *next。 public: T data。 Node(const Tamp。 item,NodeT* ptrnext = NULL)。 void InsertAfter(NodeT *p)。 NodeT *DeleteAfter(void)。 NodeT *NextNode(void) const。 }。 順序訪問的線性群體 C++語言程序設(shè)計(jì) 33 在結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn) data1 data2 … p data … template class T void NodeT::InsertAfter(NodeT *p) { //p節(jié)點(diǎn)指針域指向當(dāng)前節(jié)點(diǎn)的后繼節(jié)點(diǎn) pnext = next。 next = p。 //當(dāng)前節(jié)點(diǎn)的指針域指向 p } 順序訪問的線性群體 C++語言程序設(shè)計(jì) 34 刪除結(jié)點(diǎn)之后的結(jié)點(diǎn) 順序訪問的線性群體 data1 data2 data3 … … NodeT *NodeT::DeleteAfter(void) { NodeT *tempPtr = next。 if (next == NULL) return NULL。 next = tempPtrne
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1