




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
CArray的用法template<classTYPE,classARG_TYPE>classCArray:publicCObject參數(shù)TYPE模板參數(shù)指定存儲在數(shù)組中的對象的類型。TYPE是一個(gè)由CArray返回的參數(shù)。ARG_TYPE模板參數(shù)指定用于訪問存儲在數(shù)組中對象的參數(shù)類型。通常是一個(gè)對TYPE的參考。ARG_TYPE是一個(gè)傳遞給CArray的參數(shù)。說明CArray類支持與CArray相似的數(shù)組,但是必要時(shí)可以動(dòng)態(tài)壓縮并擴(kuò)展。數(shù)組索引從0開始??梢詻Q定是固定數(shù)組上界還是允許當(dāng)添加元素時(shí)擴(kuò)展當(dāng)前的邊界。內(nèi)存對上界是連續(xù)地分配空間,甚至一些元素可為空。和CArray一樣,CArray索引元素的訪問時(shí)間是不變的,與數(shù)組大小無關(guān)。需要包含的頭文件<afxtempl.h>CArray類支持與Carrays相似的數(shù)組,但是必要時(shí)可以動(dòng)態(tài)壓縮并擴(kuò)展。數(shù)組索引從0開始??梢詻Q定是固定數(shù)組上界還是允許當(dāng)添加元素時(shí)擴(kuò)展當(dāng)前的邊界。內(nèi)存對上界是連續(xù)地分配空間,甚至一些元素可為空。和CArray一樣,CArray索引元素的訪問時(shí)間是不變的,與數(shù)組大小無關(guān)。提示:在使用一個(gè)數(shù)組之前,使用SetSize建立它的大小和為它分配內(nèi)存。如果不使用SetSize,則為數(shù)組添加元素就會(huì)引起頻繁地重新分配和拷貝。頻繁地重新分配和拷貝不但沒有效率,而且導(dǎo)致內(nèi)存碎片。如果需要一堆數(shù)組中的個(gè)別數(shù)據(jù),必須設(shè)置CDumpContext對象的深度為1或更大。此類的某成員函數(shù)調(diào)用全局幫助函數(shù),它必須為CArray的大多數(shù)使用而定制。請參閱宏和全局量部分中的“類收集幫助器”。當(dāng)從一個(gè)CArray對象中移去元素時(shí),幫助函數(shù)DestructElements被調(diào)用。當(dāng)添加元素時(shí),幫助函數(shù)ConstructElements被調(diào)用。數(shù)組類的派生與列表的派生相似。MFC提供了一套模板庫,來實(shí)現(xiàn)一些比較常見的數(shù)據(jù)結(jié)構(gòu)如Array,List,Map。CArray即為其中的一個(gè),用來實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的功能。CArray是從CObject派生,有兩個(gè)模板參數(shù),第一個(gè)參數(shù)就是CArray類數(shù)組元素的變量類型,后一個(gè)是函數(shù)調(diào)用時(shí)的參數(shù)類型。有一個(gè)類classObject,要定義一個(gè)Object的動(dòng)態(tài)數(shù)組,那么可以用以下兩種方法:CArray<Object,Object>Var1;CArray<Object,Object&>Var2;Var2的效率要高。ClassHelpersCArray類的成員構(gòu)造函數(shù)Carray構(gòu)造一個(gè)空數(shù)組屬性GetSize獲得此數(shù)組中的元素?cái)?shù)GetUpperBound返回最大的有效索引值SetSize設(shè)置包含在此數(shù)組中的元素?cái)?shù)操作FreeExtra釋放大于當(dāng)前上界的未使用的內(nèi)存RemoveAll從此數(shù)組移去所有元素元素訪問GetAt返回在給定索引上的值SetAt設(shè)定一個(gè)給定索引的值;數(shù)組不允許擴(kuò)展ElementAt返回一個(gè)對數(shù)組中元素指針的臨時(shí)參考GetData允許對數(shù)組中的元素訪問??梢詾镹ULL擴(kuò)展數(shù)組SetAtGrow為一個(gè)給定索引設(shè)置值;如果必要,擴(kuò)展數(shù)組Add在數(shù)組的末尾添加元素;如果必要,擴(kuò)展數(shù)組Append在數(shù)組上附加另一個(gè)數(shù)組;如果必要,擴(kuò)展數(shù)組Copy把另一個(gè)數(shù)組拷貝到數(shù)組上;如果必要,擴(kuò)展數(shù)組插入/移去InsertAt在指定的索引上插入一個(gè)元素(或另一個(gè)數(shù)組中的所有元素)RemoveAt在指定的索引上移去一個(gè)元素運(yùn)算符[]在特定索引上設(shè)置或獲取元素成員函數(shù)CArray::AAdd(ARG_TYPEnewElement);throw(CmemoryException);返回值添加元素的索引。參數(shù)ARG_TYPE模板參數(shù)指定應(yīng)用數(shù)組中元素的參數(shù)的類型。newElement被加入此數(shù)組的元素。說明在數(shù)組的末尾加入一個(gè)新的元素,數(shù)組長度加1。如果SetSize已經(jīng)使用nGrowBy值比1大,則內(nèi)存按其分配。無論怎樣,上界只增長1。示例//exampleforCArray:AddCArray<Cpoint.Cpoint>ptArray;Cpointpt(10.20);ptArray.Add(pt);//Element0ptArray.Add(Cpoint(30,40));//Element1CArray::AAppend(constCArray&src);返回值第一個(gè)附加元素的索引。參數(shù)src附加到數(shù)組的元素的源。說明調(diào)用此成員函數(shù)將一個(gè)數(shù)組的內(nèi)容附加到另一個(gè)數(shù)組的末尾。數(shù)組必須是同一種類型。如果必要,Append將分配更多的內(nèi)存來存儲附加到數(shù)組上的元素。請參閱CArray::CopyCArray::CArrayCArray();返回值構(gòu)造一個(gè)空數(shù)組。數(shù)組一次擴(kuò)展一個(gè)元素。請參閱CObArray::CObArrayCArray::CopyvoidCopy(constCArray&src);參數(shù)Src被拷貝到數(shù)組中的元素的源。說明使用此成員函數(shù)將一個(gè)數(shù)組的元素拷貝到另一個(gè)數(shù)組中。調(diào)用此成員函數(shù)用另一個(gè)數(shù)組的元素復(fù)寫數(shù)組的元素。Copy不會(huì)釋放內(nèi)存;但是,如果必要,Copy可以為拷貝到數(shù)組的元素分配更多的內(nèi)存。請參閱CArray::AppendCArray::ElementTYPE&ElementAt(intnIndex);返回值數(shù)組元素的參考。參數(shù)TYPE指定數(shù)組元素類型的模板參數(shù)。nIndex比0大或比0小的整數(shù)索引,并且小于或等于由GetUpperBound返回的值。說明返回一個(gè)對數(shù)組中指定元素的臨時(shí)參考。它用于實(shí)現(xiàn)數(shù)組的左邊界分配運(yùn)算符。請參閱CArray::operator[]CArray::FreeExtravoidFreeExtra();說明釋放任何當(dāng)數(shù)組擴(kuò)展時(shí)所分配的額外的內(nèi)存空間。此函數(shù)不影響數(shù)組的大小和上界。CArray::GetAtTYPEGetAt(intnIndex)const;返回值當(dāng)前在索引上的數(shù)組元素。參數(shù)TYPE指定數(shù)組元素類型的模板參數(shù)。nIndex比0大或比0小的整數(shù)索引,并且小于或等于由GetUpperBound返回的值。說明返回特定索引的數(shù)組元素。注意傳遞一個(gè)負(fù)值或一個(gè)比由GetUpperBound返回值大的值將會(huì)引起失敗。請參閱CArray::SetAt,CArray::operator[],ConstElementsCArray::GetDataconstTYPE*GetData()const;TYPE*GetData();返回值指向數(shù)組元素的指針。參數(shù)TYPE指定數(shù)組元素類型的模板參數(shù)說明使用此成員函數(shù),獲得對數(shù)組中元素的直接訪問。如果沒有元素是有效的,GetData返回一個(gè)空值。當(dāng)對數(shù)組元素的直接訪問可使工作更快時(shí),當(dāng)調(diào)用GetData時(shí)請使用警告,任何直接引起的錯(cuò)誤都會(huì)影響數(shù)組元素。請參閱CArray::GetAt;CArray::SetAt;CArray::ElementAtCArray::GetSizeintGetSize()const;說明返回?cái)?shù)組的大小。既然索引基于0,所以數(shù)組的大小比最大的索引多1。請參閱CArray::GetUpperBound,CArray::SetSizeCArray::GetUpperBGetUpperBound()const;說明返回?cái)?shù)組的上界。因?yàn)閿?shù)組索引基于0,此函數(shù)返回值比GetbSize小1。GetUpperBound=-1的條件確定了數(shù)組中沒有包含元素。請參閱CArray::GetSize,CArray::SetSizeCArray::InsertAtvoidInsertAt(intnIndex,ARG_TYPEnewElement,intnCount=1);throw(CmemoryException);voidInsertAt(intnStarIndex,CArray*pNewArray);throw(CMemoryException);參數(shù)nIndex整數(shù)值,它可以比GetUpperBound返回值大。ARG_TYPE指定數(shù)組元素類型的模板參數(shù)。newElement要被放置到數(shù)組中的元素。nCount此元素應(yīng)被插入的次數(shù)(缺省為1)。nStarIndex整數(shù)索引,它可以比GetUpperBound返回值大。pNewArray要被加入此數(shù)組的另一個(gè)包含元素的數(shù)組。說明InsertAt的第一個(gè)版本在數(shù)組的特定索引上插入一個(gè)元素(或元素的多個(gè)拷貝)。在此過程中,移動(dòng)(通過索引值的增加)此索引上原有的元素,并且移動(dòng)所有在其后的元素。第二個(gè)版本由另一個(gè)CArray收集插入所有元素,從nStartIndex位置開始。SetAt函數(shù)替換一個(gè)特定數(shù)組元素,不移動(dòng)任何元素。示例//exampleforCArray::InsertCArray<Cpoint.Cpoint>ptArray;ptArray.Add(Cpoint(10,20));//Element0ptArray.Add(Cpoint(30,40));//Element1(willbecomeelement2)ptArray.InsertAt(1,Cpoint(50,60));//Newelement1請參閱GetUpperBound,CArray::SetAt,CArray::RemoveAtCArray::RemoveAllvoidRemoveAll();說明從此數(shù)組中移去所有元素。如果數(shù)組已經(jīng)為空,此函數(shù)也起作用。CArray::RemoveAtvoidRemoveAt(intnIndex,intnCount=1);參數(shù)nIndex整數(shù)索引。它大于或等于0并且小于或等于GetUpperBound返回值。nCount刪除元素的數(shù)量。說明從數(shù)組指定的索引起刪除一個(gè)或多個(gè)元素。在這個(gè)過程中,它將所有的元素向下移動(dòng)。它減少數(shù)組的上界值,但是不釋放內(nèi)存。如果試圖刪除包含在數(shù)組中在刪除點(diǎn)之上的多個(gè)元素,則使用庫斷言的調(diào)試版本。CArray::SetAtvoidSetAt(intnIndex,ARG_TYPEnewElement);參數(shù)nIndex整數(shù)索引。它大于或等于0并且小于或等于GetUpperBound返回值。ARG_TYPE指定用于參考數(shù)組元素的參數(shù)類型的模板參數(shù)。newElement被存儲在指定位置的新的元素值。說明在指定的索引設(shè)置數(shù)組元素。SetAt將不會(huì)引起數(shù)組增長。如果想讓數(shù)組自動(dòng)增長,請使用SetAtGrow。必須保證索引值表示的是一個(gè)數(shù)組中的有效位置。如果它超出了邊界,則使用庫斷言的調(diào)試版本。請參閱CArray::GetAt,CArray::SetGrow,CArray::ElementAt,CArray::opertor[]CArray::SetAtGrowvoidSetAtGrow(intnIndex,ARG_TYPEnewElement);throw(CMemoryException);參數(shù)nIndex整數(shù)索引。它大于或等于0。ARG_TYPE指定數(shù)組元素類型的模板參數(shù)。newElement被添加在此數(shù)組的元素值。允許空值。說明在指定的索引上設(shè)置數(shù)組元素。如果必要,數(shù)組自動(dòng)增長(調(diào)整上界以接納新元素)。示例//exampleforCArray::SetAtGrowCArray<CPoint.CPoint>ptArray;ptArray.Add(CPoint(10,20));//Element0ptArray.Add(CPoint(30,40));//Element1//Element2deliberatelyskippedptArray.SetAtGrow(3,CPoint(50,60));//Element3請參閱CArray::GetAt,CArray::SetAt,CArray::Element,CArray::oprator[]CArray::SetSizevoidSetSize(intnNewSize,intnGrowBy=-1);throw(CMemoryException);參數(shù)nNewSize新的數(shù)組大小(元素的個(gè)數(shù))。必須大于或等于0。nGrowBy如果有必要擴(kuò)展數(shù)組大小時(shí),這是要分配的元素位置的最小值。說明建立一個(gè)空的或已存在數(shù)組的大?。蝗绻匾瑒t分配內(nèi)存。如果新的大小比以前的大小的話,則數(shù)組被截短并且所有未使用的內(nèi)存被釋放。在開始使用數(shù)組之前,使用此函數(shù)設(shè)置數(shù)組的大小。如果沒有使用SetSize,則為數(shù)組添加元素就會(huì)引起頻繁地重分配和拷貝。頻繁地重分配和拷貝不僅無效率,而且會(huì)造成內(nèi)存碎片。當(dāng)數(shù)組正在擴(kuò)張時(shí),nGrowBy參數(shù)會(huì)影響內(nèi)部地內(nèi)存分配。正象GetSize和GetUpperBound提到地那樣,它的使用不會(huì)數(shù)組大小。如果使用缺省值,則MFC分配內(nèi)存會(huì)使用計(jì)算方法,避免內(nèi)存碎片并加已優(yōu)化,使之對大多數(shù)的情況都更有效率。請參閱CArray::GetUpperBound,CArray::GetSize操作符CArray::opertor[]TYPE&operator[](intnIndex);TYPE&operator[](intnIndex)const;參數(shù)TYPE指定此數(shù)組中元素的類型的模板參數(shù)。nIndex被訪問的元素的索引。說明這些下標(biāo)運(yùn)算符可方便地取代SetAt和GetAt函數(shù)。第一個(gè)運(yùn)算符,不是常量的數(shù)組調(diào)用它,可以用在賦值語句的右(右值)或左(左值)邊。第二個(gè),為常量數(shù)組調(diào)用,只能用在賦值語句的右邊。如果下標(biāo)(一個(gè)賦值語句的左或右邊)超出了邊界,則使用庫斷言的調(diào)試版本。請參閱CArray::GetAt;CArray::SetAt;CArray::ElementAtCArray類成員變量的初始化先了解一下CArray中的成員變量及作用。TYPE*m_pData;//數(shù)據(jù)保存地址的指針intm_nSize;//用戶當(dāng)前定義的數(shù)組的大小intm_nMaxSize;//當(dāng)前實(shí)際分配的數(shù)組的大小intm_nGrowBy;//分配內(nèi)存時(shí)增長的元素個(gè)數(shù)構(gòu)造函數(shù),對成員變量進(jìn)行了初始化。CArray<TYPE,ARG_TYPE>::CArray(){m_pData=NULL;m_nSize=m_nMaxSize=m_nGrowBy=0;}SetSize成員函數(shù)是用來為數(shù)組分配空間的。SetSize的函數(shù)定義如下:voidSetSize(intnNewSize,intnGrowBy=-1);nNewSize指定數(shù)組的大小nGrowBy如果需要增加數(shù)組大小時(shí)增加的元素的個(gè)數(shù)。對SetSize的代碼,進(jìn)行分析。voidCArray<TYPE,ARG_TYPE>::SetSize(intnNewSize,intnGrowBy){if(nNewSize==0){//第一種情況//當(dāng)nNewSize為0時(shí),需要將數(shù)組置為空,//如果數(shù)組本身即為空,則不需做任何處理//如果數(shù)組本身已含有數(shù)據(jù),則需要清除數(shù)組元素if(m_pData!=NULL){//DestructElements函數(shù)實(shí)現(xiàn)了對數(shù)組元素析構(gòu)函數(shù)的調(diào)用//不能使用deletem_pData因?yàn)槲覀儽仨氁{(diào)用數(shù)組元素的析構(gòu)函數(shù)DestructElements<TYPE>(m_pData,m_nSize);//現(xiàn)在才能釋放內(nèi)存delete[](BYTE*)m_pData;m_pData=NULL;}m_nSize=m_nMaxSize=0;}elseif(m_pData==NULL){//第二種情況//當(dāng)m_pData==NULL時(shí)還沒有為數(shù)組分配內(nèi)存//首先我們要為數(shù)組分配內(nèi)存,sizeof(TYPE)可以得到數(shù)組元素所需的字節(jié)數(shù)//使用new數(shù)組分配了內(nèi)存。注意,沒有調(diào)用構(gòu)造函數(shù)m_pData=(TYPE*)newBYTE[nNewSize*sizeof(TYPE)];//下面的函數(shù)調(diào)用數(shù)組元素的構(gòu)造函數(shù)ConstructElements<TYPE>(m_pData,nNewSize);//記錄下當(dāng)前數(shù)組元素的個(gè)數(shù)m_nSize=m_nMaxSize=nNewSize;}elseif(nNewSize<=m_nMaxSize){//第三種情況//這種情況需要分配的元素個(gè)數(shù)比已經(jīng)實(shí)際已經(jīng)分配的元素個(gè)數(shù)要少if(nNewSize>m_nSize){//需要增加元素的情況//與第二種情況的處理過程,既然元素空間已經(jīng)分配,//只要調(diào)用新增元素的構(gòu)造函數(shù)就OkConstructElements<TYPE>(&m_pData[m_nSize],nNewSize-m_nSize);}elseif(m_nSize>nNewSize){//現(xiàn)在是元素減少的情況,我們是否要重新分配內(nèi)存呢?//No,這種做法不好,后面來討論。//下面代碼釋放多余的元素,不是釋放內(nèi)存,只是調(diào)用析構(gòu)函數(shù)DestructElements<TYPE>(&m_pData[nNewSize],m_nSize-nNewSize);}m_nSize=nNewSize;}else{//這是最糟糕的情況,因?yàn)樾枰脑卮笥趍_nMaxSize,//意味著需要重新分配內(nèi)存才能解決問題//計(jì)算需要分配的數(shù)組元素的個(gè)數(shù)intnNewMax;if(nNewSize<m_nMaxSize+nGrowBy)nNewMax=m_nMaxSize+nGrowBy;elsenNewMax=nNewSize;//重新分配一塊內(nèi)存TYPE*pNewData=(TYPE*)newBYTE[nNewMax*sizeof(TYPE)];//實(shí)現(xiàn)將已有的數(shù)據(jù)復(fù)制到新的的內(nèi)存空間memcpy(pNewData,m_pData,m_nSize*sizeof(TYPE));//對新增的元素調(diào)用構(gòu)造函數(shù)ConstructElements<TYPE>(&pNewData[m_nSize],nNewSize-m_nSize);//釋放內(nèi)存delete[](BYTE*)m_pData;//將數(shù)據(jù)保存m_pData=pNewData;m_nSize=nNewSize;m_nMaxSize=nNewMax;}}下面是ConstructElements函數(shù)的實(shí)現(xiàn)代碼template<classTYPE>AFX_INLINEvoidAFXAPIConstructElements(TYPE*pElements,intnCount){//firstdobit-wisezeroinitializationmemset((void*)pElements,0,nCount*sizeof(TYPE));for(;nCount--;pElements++)::new((void*)pElements)TYPE;}ConstructElements是一個(gè)模板函數(shù)。對構(gòu)造函數(shù)的調(diào)用是通過標(biāo)為黑體的代碼實(shí)現(xiàn)的??赡芎芏嗳瞬皇煜ew的這種用法,它可以實(shí)現(xiàn)指定的內(nèi)存空間中構(gòu)造類的實(shí)例,不會(huì)再分配新的內(nèi)存空間。類的實(shí)例產(chǎn)生在已經(jīng)分配的內(nèi)存中,并且new操作會(huì)調(diào)用對象的構(gòu)造函數(shù)。因?yàn)関c中沒有辦法直接調(diào)用構(gòu)造函數(shù),而通過這種方法,巧妙的實(shí)現(xiàn)對構(gòu)造函數(shù)的調(diào)用。再來看DestructElements函數(shù)的代碼template<classTYPE>AFX_INLINEvoidAFXAPIDestructElements(TYPE*pElements,intnCount){for(;nCount--;pElements++)pElements->~TYPE();}DestructElements函數(shù)同樣是一個(gè)模板函數(shù),實(shí)現(xiàn)很簡單,直接調(diào)用類的析構(gòu)函數(shù)即可。如果定義一個(gè)CArray對象CArray<Object,Object&>myObject,對myObject就可象數(shù)組一樣,通過下標(biāo)來訪問指定的數(shù)組元素。CArray[]有兩種實(shí)現(xiàn),區(qū)別在于返回值不同。template<classTYPE,classARG_TYPE>AFX_INLINETYPECArray<TYPE,ARG_TYPE>::operator[](intnIndex)const{returnGetAt(nIndex);}template<classTYPE,classARG_TYPE>AFX_INLINETYPE&CArray<TYPE,ARG_TYPE>::operator[](intnIndex){returnElementAt(nIndex);}前一種情況是返回的對象的實(shí)例,后一種情況是返回對象的引用。分別調(diào)用不同的成員函數(shù)來實(shí)現(xiàn)。TYPEGetAt(intnIndex)const{ASSERT(nIndex>=0&&nIndex<m_nSize);returnm_pData[nIndex];}TYPE&ElementAt(intnIndex){ASSERT(nIndex>=0&&nIndex<m_nSize);returnm_pData[nIndex];}除了返回值不同,其它都一樣.CArray<int,int&>arrInt;arrInt.SetSize(10);intn=arrInt.GetAt(0);int&l=arrInt.ElementAt(0);cout<<arrInt[0]<<endl;n=10;cout<<arrInt[0]<<endl;l=20;count<<arrInt[0]<<endl;結(jié)果會(huì)發(fā)現(xiàn),n的變化不會(huì)影響到數(shù)組,而l的變化會(huì)改變數(shù)組元素的值。實(shí)際即是對C++中引用運(yùn)算符的運(yùn)用。CArray下標(biāo)訪問是非安全的,它并沒有超標(biāo)預(yù)警功能。雖然使用ASSERT提示,但下標(biāo)超范圍時(shí)沒有進(jìn)行處理,會(huì)引起非法內(nèi)存訪問的錯(cuò)誤。Add函數(shù)的作用是向數(shù)組添加一個(gè)元素。下面是它的定義:intCArray<TYPE,ARG_TYPE>::Add(ARG_TYPEnewElement).Add函數(shù)使用的參數(shù)是模板參數(shù)的二個(gè)參數(shù),也就是說,這個(gè)參數(shù)的類型是我們來決定的,可以使用Object或Object&的方式。熟悉C++的朋友都知道,傳引用的效率要高一些。如果是傳值的話,會(huì)在堆棧中再產(chǎn)生一個(gè)新的對象,需要花費(fèi)更多的時(shí)間。template<classTYPE,classARG_TYPE>AFX_INLINEintCArray<TYPE,ARG_TYPE>::Add(ARG_TYPEnewElement){intnIndex=m_nSize;SetAtGrow(nIndex,newElement);returnnIndex;}它實(shí)際是通過SetAtGrow函數(shù)來完成這個(gè)功能的,它的作用是設(shè)置指定元素的值。template<classTYPE,classARG_TYPE>voidCArray<TYPE,ARG_TYPE>::SetAtGrow(intnIndex,ARG_TYPEnewElement){if(nIndex>=m_nSize)SetSize(nIndex+1,-1);m_pData[nIndex]=newElement;}SetAtGrow的實(shí)現(xiàn)也很簡單,如果指定的元素已經(jīng)存在,就把改變指定元素的值。如果指定的元素不存在,也就是nIndex>=m_nSize的情況,就調(diào)用SetSize來調(diào)整數(shù)組的大小首先定義CArray<char*>arryPChar;這里以定義char*的為例子。接下來我們來熟悉CArray這個(gè)類里的函數(shù)。INT_PTRGetCount()const;獲得當(dāng)前這個(gè)數(shù)組有多少個(gè)元素。voidSetSize(INT_PTRnNewSize,INT_PTRnGrowBy=-1);設(shè)置數(shù)組的大小。TYPE&GetAt(INT_PTRnIndex);voidSetAt(INT_PTRnIndex,ARG_TYPEnewElement);獲得/設(shè)置序列的元素INT_PTRAdd(ARG_TYPEnewElement);在數(shù)組的末尾添加一個(gè)元素,數(shù)組的長度加1。如果之前使用SetSize是nGrowBy大于1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智慧物流平臺股權(quán)投資合同協(xié)議
- 2025年度無社保派遣員工勞動(dòng)合同
- 2025年度電子產(chǎn)品銷售兼職傭金結(jié)算合同
- 二零二五年度貓咪寵物美容學(xué)院加盟買賣協(xié)議
- 《物流系統(tǒng)分析》課件 6.3.1單節(jié)點(diǎn)選址模型1
- 高中家長會(huì):家校攜手·共創(chuàng)明天課件-高一上學(xué)期家長會(huì)
- 常年聘請法律顧問的合同
- 2025年遼寧貨運(yùn)從業(yè)資格證試題庫及答案
- 金秋助學(xué)發(fā)言稿
- 智能家居產(chǎn)品市場占有率表格
- 科普版小學(xué)英語六年級下冊全冊教案
- 腦梗合并心衰護(hù)理查房
- 婦聯(lián)普法知識競賽參考試題庫300題(含答案)
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 【綠色家園你我共建】約會(huì)春天擁抱綠色-2024年3月12日植樹節(jié)主題班會(huì)(小學(xué)通用版)
- 解分式方程50題八年級數(shù)學(xué)上冊
- 溶液鍍膜法完整版本
- 消化道出血應(yīng)急預(yù)案
- 【溫州眼鏡出口遭遇技術(shù)貿(mào)易壁壘的現(xiàn)狀及對策(定量論文)15000字】
- AI技術(shù)在保險(xiǎn)行業(yè)的應(yīng)用
- 文華財(cái)經(jīng)“麥語言”函數(shù)手冊
評論
0/150
提交評論