**請不要批評代碼本身的目的。它來自Pat Morin的開放數據結構書。不是我的第一選擇,它的分配閱讀/練習。我只是想知道是否有辦法區分,或者有更好的方法來解決這個問題。教材 - >http://opendatastructures.org/ods-cpp/ **如果我需要在C++中區分0和NULL,該怎麼辦?
**另注:我從Java,在此將被允許到來。我的代碼仍然編譯,它只是「修復」,它**
我很驚訝,這樣的事已經到來之前,因爲它似乎是這樣一個簡單的問題。也許它被埋沒了,或者我沒有使用正確的術語。
我有一個for循環,通過在一個矢量中的數據去。如果找到它,我需要返回正在搜索的值。如果沒有找到?這是我的代碼。
int find(int x) {
for(int i=0;i<bag.size();i++){
// if x is equal to data, return data
if (bag[i]==x){
return bag[i]; // ends loop as soon as one instance is found
}
}
// if we made it this far, no match was found.
return NULL;
}
很簡單。假設0是我可能需要記錄和搜索的有效值之一。事實上,它實際上返回0,而不是「NULL」。研究表明它是一樣的。我如何指定或區分?除了返回一個不會出現在程序中的obsqure數字,因爲我們可能並不總是有這樣的奢侈品(比如-1或-9999999)。例如,搜索您的帳戶餘額。沒有數字是不可能的。
如果發現X(作爲參數傳遞),什麼是傳遞返回相同值的點作爲參數?爲什麼不使用'bool'作爲返回值呢? – Unda
'NULL'並不意味着是'int' =>反正代碼是錯誤的。作爲搜索方法的錯誤值,'-1'通常是。 – deviantfan
我是否理解如果找到該值,該函數返回與輸入相同的值?如果是的話,你只需要返回任何其他號碼,調用代碼將能夠知道它是否被發現。或者更好,只是讓它返回真或假。 – user463035818