【发布时间】:2015-01-27 17:44:23
【问题描述】:
我有以下功能:
int FamiliesController::returnFamilySelected(){
for ( int i = 0; i < isFamilyCoosenController.size(); i++){
if ( isFamilyChosenController[i] == true){
return i;
}
}
}
这个函数返回一组布尔值的索引,当其中一个为真时,它返回它在向量中的索引,非常简单。我现在遇到的问题是,当所有布尔值都是错误的时候。该函数返回一个奇怪的数字 -1029384。如果我像这样比较它们的那一刻:
int FamiliesController::returnFamilySelected(){
for ( int i = 0; i < isFamilyChosenController.size(); i++){
if ( isFamilyChosenController[i] == true){
return i;
}else if ( is FamilyIsChosenController[i] == false){
return - 1;
}
}
}
它总是返回-1。因为只有一个元素为真并不重要,一旦它在向量中传递该布尔值,它将立即返回假,因为下一个元素为假。我需要始终返回已变为真的索引。
有没有办法告诉它例如(伪代码):
for ( int i = 0; i < isFamilyChosenController.size(); i++){// we check in our vector of booleans
if ( One boolean == true ){
return the index of that boolean;
}else if ( all the booleans == false ){
return -1; // a number that is out of the container size but I can manipualte
}
请注意,我没有使用 c++ 11。
谢谢!
【问题讨论】: