**请不要批评代码本身的目的。它来自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