** 请不要批评代码本身的目的。它来自 Pat Morin 的 Open Data Structures 书。不是我的第一选择,它指定的阅读/练习。我只是想知道是否有区分的方法,或者更好的方法来解决这个问题。教科书--> http://opendatastructures.org/ods-cpp/ **
** 另一个注意事项:我来自 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”。研究表明它是一回事。如何指定或区分?除了返回一个不会出现在程序中的晦涩数字之外,因为我们可能并不总是拥有那种奢侈(如 -1 或 -9999999)。例如,搜索您的帐户余额。没有数字是不可能的。