獲取vector元素個(gè)數(shù) 請(qǐng)問(wèn)在C語(yǔ)言中如何獲取一個(gè)數(shù)組里存在多少個(gè)元素?
請(qǐng)問(wèn)在C語(yǔ)言中如何獲取一個(gè)數(shù)組里存在多少個(gè)元素?有一個(gè)獲取數(shù)組元素?cái)?shù)的函數(shù):sizeof!其原理是:sizeof獲取數(shù)組的長(zhǎng)度,然后將其除以數(shù)據(jù)類(lèi)型的長(zhǎng)度得到元素?cái)?shù)。我只寫(xiě)下代碼:inta[100]=
請(qǐng)問(wèn)在C語(yǔ)言中如何獲取一個(gè)數(shù)組里存在多少個(gè)元素?
有一個(gè)獲取數(shù)組元素?cái)?shù)的函數(shù):sizeof!其原理是:sizeof獲取數(shù)組的長(zhǎng)度,然后將其除以數(shù)據(jù)類(lèi)型的長(zhǎng)度得到元素?cái)?shù)。我只寫(xiě)下代碼:inta[100]={1,2,3,4}intlen=sizeof(a)/sizeof(int)printf(%d“,len)。以上是原始答案,但有錯(cuò)誤:給定數(shù)組大小時(shí),Sizeof不起作用。我沒(méi)有注意到我當(dāng)時(shí)犯了一些錯(cuò)誤。請(qǐng)?jiān)徫乙荒旰笮薷牧诉@個(gè)答案。我認(rèn)為int array的默認(rèn)值是0,這稱(chēng)為初始化。假設(shè)非0是一個(gè)有效元素。While(I<100){if(a[I]!=0)count I}遍歷并記錄具有終止符的字符數(shù)組。您只需要找到終止符的位置
sizeof(a)/sizeof(a[0])。這是在定義時(shí)分配給它的數(shù)組的總長(zhǎng)度,其中a是數(shù)組的名稱(chēng)。三樓的兄弟用一個(gè)環(huán)計(jì)算數(shù)組的實(shí)際長(zhǎng)度。但是,如果數(shù)組中有元素為0的成員,則會(huì)出現(xiàn)問(wèn)題。因此,如果要返回存儲(chǔ)在數(shù)組中的元素?cái)?shù),除非知道這批數(shù)據(jù)中肯定沒(méi)有數(shù)字,否則if-100,那么可以使用if判斷遍歷整個(gè)數(shù)組并計(jì)算數(shù)字。
如果使用STL中的向量,即動(dòng)態(tài)數(shù)組,則可以直接調(diào)用其中一個(gè)方法來(lái)計(jì)算數(shù)組中存儲(chǔ)的元素?cái)?shù)。
如何獲得數(shù)組的元素個(gè)數(shù)?
獲取數(shù)組元素?cái)?shù)的方法:堆區(qū)域中的數(shù)組。堆區(qū)域中的數(shù)組是自己應(yīng)用的。例如,new用于應(yīng)用空格:int*arr=newint[10]。堆區(qū)域中的數(shù)組無(wú)法計(jì)算元素?cái)?shù)。堆疊區(qū)域陣列由系統(tǒng)自動(dòng)分配。但是,通過(guò)將array name參數(shù)傳遞給子函數(shù)來(lái)獲取數(shù)組長(zhǎng)度是不可行的,因?yàn)樵谧雍瘮?shù)中,數(shù)組名稱(chēng)將退化為指針。
怎么獲得數(shù)組元素的個(gè)數(shù)?
有一個(gè)獲取數(shù)組元素?cái)?shù)的函數(shù):sizeof!其原理是:sizeof獲取數(shù)組的長(zhǎng)度,然后將其除以數(shù)據(jù)類(lèi)型的長(zhǎng)度得到元素?cái)?shù)。我只寫(xiě)下代碼:inta[100]={1,2,3,4}intlen=sizeof(a)/sizeof(int)printf(%dn,len)。以上是最初的答案。出現(xiàn)錯(cuò)誤:給定數(shù)組大小時(shí),sizeof不起作用。我沒(méi)有注意到我犯了一些錯(cuò)誤請(qǐng)?jiān)徫乙荒旰笮薷牧诉@個(gè)答案~我以為int array的默認(rèn)值是0,這叫初始化。假設(shè)non-0是有效元素,而(I<100){if(a[I]!=0)計(jì)數(shù)I}遍歷。記錄字符數(shù)組有一個(gè)終止符,只要找到終止符的位置,就可以使用
JScript語(yǔ)言引用
-----------------------------------------------------------------
長(zhǎng)度屬性(數(shù)組)
返回一個(gè)大于數(shù)組下標(biāo)1的整數(shù)值數(shù)組中定義的最上面的元素。
numVar=數(shù)組長(zhǎng)度
參數(shù)
numvar
必需。任何數(shù)字。
Arrayobj
必需。任何數(shù)組對(duì)象。
注意
因?yàn)閿?shù)組中的元素不一定是連續(xù)的,所以length屬性不一定等于數(shù)組中的元素?cái)?shù)。例如,在下面的數(shù)組定義中,myu數(shù)組長(zhǎng)度而不是2:
var myuarray=new array()
myuarray[0]=“Test”
myuarray[6]=“another Test”
如果給定的長(zhǎng)度屬性值小于原始值,則數(shù)組將被截?cái)啵瑪?shù)組下標(biāo)等于或大于length屬性的新值的所有元素都將丟失。
如果給length屬性一個(gè)大于原始值的值,數(shù)組將展開(kāi),所有新元素都將分配為未定義。
下面的示例演示了length屬性的用法:
function lengthdemo(){
var a
a=新數(shù)組(0,1,2,3,4)
return(a.length)
}
requirement
version 2
請(qǐng)參考
length attribute(function)| length attribute(string)
應(yīng)用于:array object
數(shù)組在C中可以分為堆區(qū)域數(shù)組和堆棧區(qū)域數(shù)組,對(duì)于兩種數(shù)組C沒(méi)有函數(shù)可以獲取數(shù)組的元素個(gè)數(shù)直接數(shù)組。1、 堆區(qū)域的數(shù)組是自己應(yīng)用的。例如,new用于應(yīng)用空間:int*arr=new int[10]堆區(qū)域數(shù)組中的元素?cái)?shù)無(wú)法計(jì)算。2、 堆棧區(qū)域的數(shù)組由系統(tǒng)自動(dòng)分配,例如:[CPP]view plain copy