gpt4 book ai didi

c++ - 从 bool vector 返回索引的 int 函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:22 26 4
gpt4 key购买 nike

我有以下功能:

int FamiliesController::returnFamilySelected(){

for ( int i = 0; i < isFamilyCoosenController.size(); i++){

if ( isFamilyChosenController[i] == true){

return i;
}
}
}

此函数返回一组 bool 值的索引,当其中一个为真时,它返回其在 vector 中的索引,非常简单。我现在遇到的问题是,当所有 bool 值都为假时。该函数返回一个奇怪的数字-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。因为如果只有一个元素为真并不重要,一旦它在 vector 中传递那个 bool 值,它将立即返回假,因为下一个元素为假。我需要始终返回已变为 true 的索引。

有没有办法告诉它例如(伪代码):

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。

谢谢!

最佳答案

只需将 return -1 放在循环之后即可。任一值满足您的条件并返回其索引,否则循环结束并返回 -1。

也就是说,在 C++ 中执行此操作的惯用方法是使用 std::find .

关于c++ - 从 bool vector 返回索引的 int 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28176696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com