我想知道我的數組填充了什麼索引。我知道一種方法,我將在循環內部維護一個臨時變量,並將保持它的更新,最終確定它的大小。確定數組索引至哪個數組被填充?
我想知道,除了這種方法是他們的任何其他方式來完成這項任務?最好是O(1)(如果可能的話)或者比O(n)更好的東西。
我想知道我的數組填充了什麼索引。我知道一種方法,我將在循環內部維護一個臨時變量,並將保持它的更新,最終確定它的大小。確定數組索引至哪個數組被填充?
我想知道,除了這種方法是他們的任何其他方式來完成這項任務?最好是O(1)(如果可能的話)或者比O(n)更好的東西。
沒有通用的方法來做到這一點作爲一個數組的所有元素始終包含值。
夫婦共同的方式來處理:
null
,對於其他類型,有時會有一些特殊值很少使用,可以將其視爲「缺失」 - 即整數類型的最大值。第二種方法是這樣的C風格的字符串來實現 - 這是人物達到0
字符數組 - 讓你隨時可以計算一個字符串的長度,即使它被存儲在字符的長陣。
我認爲現在我會選擇第一個天真的方式,在獲得基礎知識後,我會盡力實施第二種方式。謝謝你:)並且抱歉我的英語不好 –
當然是+1這樣一個很好的答案:) :) :) –
你可以添加這個回答:http://en.cppreference.com/w/cpp/container/array/size –
會這樣嗎?
size_t size_of_array = sizeof(array)/sizeof(array[0]);
類似的東西,並做更正語法:)
這告訴你數組有多大,而不是有多少元素被「填充」。 –
@hg_git我認爲它會告訴陣列的總大小,即空+填充 –
數組用指針表示,所以當你做'sizeof(array)'時,你得到指針的大小 – smac89
我假設你的意思是「從第零個連續填充」索引?您可以將數組元素初始化爲一個哨兵值,然後從零開始計算填充了多少個元素。爲什麼要跟蹤一個臨時變量不夠好?你究竟在努力完成什麼?從技術上講,有很多很多方法可以做到,儘管許多方法效率不高。 –
@i_am_jorf這將是一個O(n)的解決方案。如果我錯了,請更正我 –
是的,是嗎?你沒有指定你想要多快。你的問題過於模糊。 –